python正则表达式爬取猫眼电影top100

下面是详细的攻略:

Python正则表达式爬取猫眼电影Top100

在本文中,我们将使用Python正则表达式爬取猫眼电影Top100的电影信息。我们将使用Python的requests库发送HTTP请求,然后使用正则表达式从HTML页面中提取电影信息。

爬取猫眼电影Top100

首先,我们需要使用Python的requests库发送HTTP请求,获取猫眼电影Top100的HTML页面。下面是示例代码:

import requests

url = 'https://maoyan.com/board/4'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

在上面的代码中,我们使用requests库发送HTTP请求,获取猫眼电影Top100的HTML页面。我们使用了requests.get()函数发送GET请求,然后使用response.text属性获取HTML页面的文本内容。

提取电影信息

接下来,我们需要使用正则表达式从HTML页面中提取电影信息。我们可以使用Python的re模块来进行正则表达式操作。下面是示例代码:

import re

pattern = r'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>'
movies = re.findall(pattern, html, re.S)
for movie in movies:
    print(movie)

在上面的代码中,我们使用正则表达式从HTML页面中提取电影信息。我们使用了re.findall()函数来搜索HTML页面中匹配正则表达式的所有字符串,并返回一个列表。我们使用了一个较为复杂的正则表达式,用于匹配电影的排名、海报、名称、主演、上映时间、评分等信息。

示例一:提取电影名称

下面是一个示例,演示如何使用正则表达式从HTML页面中提取电影名称:

import re
import requests

url = 'https://maoyan.com/board/4'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

pattern = r'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>'
movies = re.findall(pattern, html, re.S)
for movie in movies:
    name = movie[2]
    print(name)

在上面的代码中,我们使用正则表达式从HTML页面中提取电影名称。我们使用了re.findall()函数来搜索HTML页面中匹配正则表达式的所有字符串,并返回一个列表。然后,我们使用了一个for循环遍历列表,提取每个电影的名称。

示例二:提取电影评分

下面是另一个示例,演示如何使用正则表达式从HTML页面中提取电影评分:

import re
import requests

url = 'https://maoyan.com/board/4'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text

pattern = r'<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>'
movies = re.findall(pattern, html, re.S)
for movie in movies:
    score = movie[5] + movie[6]
    print(score)

在上面的代码中,我们使用正则表达式从HTML页面中提取电影评分。我们使用了re.findall()函数来搜索HTML页面中匹配正则表达式的所有字符串,并返回一个列表。然后,我们使用了一个for循环遍历列表,提取每个电影的评分,并将整数部分和小数部分拼接成一个字符串。

总结

本文介绍了如何使用Python正则表达式爬取猫眼电影Top100的电影信息。我们使用了Python的requests库发送HTTP请求,然后使用正则表达式从HTML页面中提取电影信息。同时,我们还提供了两个示例,用于演示如何使用正则表达式从HTML页面中提取电影名称和评分。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python正则表达式爬取猫眼电影top100 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python调用Fortran的三种形式

    那么接下来我将会为大家详细讲解Python调用Fortran的三种形式。 1. 使用Fortran子程序库(Shared Library) Fortran子程序库是编写Fortran程序时一种非常常用的形式,可以将Fortran代码编译为动态库(.so文件或.dll文件),并允许其他编程语言中的程序调用Fortran代码。Python可以使用ctypes库或…

    python 2023年6月2日
    00
  • 关于爬虫中scrapy.Request的更多参数用法

    在Scrapy中,我们可以使用scrapy.Request对象发起HTTP请求。除了URL参数外,scrapy.Request对象还支持许多其他参数,以帮助我们更好地控制HTTP请求。本文将介绍scrapy.Request对象的更多参数用法,并提供两个示例。 1. 更多参数用法 除了URL参数外,scrapy.Request对象还支持以下参数: callba…

    python 2023年5月15日
    00
  • 在Python中使用NumPy计算给定复数根的切比雪夫级数的根

    要在Python中使用NumPy计算给定复数根的切比雪夫级数,可以遵循以下步骤: 导入NumPy库。 import numpy as np 定义复数根。 z = 1 + 2j 定义切比雪夫级数的阶数。 N = 5 创建切比雪夫多项式的系数向量,其中每个系数都等于1或-1。 c = np.zeros(N+1, dtype=np.complex128) c[0]…

    python-answer 2023年3月25日
    00
  • 在Python中使用NumPy将Hermite_e系列提高到一个幂数

    将Hermite_e系列提升到一个更高的幂,可以通过NumPy的多项式模块numpy.polynomial.hermite_e实现。下面是详细步骤: 导入所需模块 使用NumPy之前,需要先导入相关模块。因此,我们需要将numpy和numpy.polynomial.hermite_e两个模块导入到Python环境中。 import numpy as np f…

    python-answer 2023年3月25日
    00
  • 盈透证券 Python 数据请求

    【问题标题】:Interactive Brokers Python Data Request盈透证券 Python 数据请求 【发布时间】:2023-04-04 17:33:01 【问题描述】: 我正在运行以下代码,但我获取快照价格的请求在 python 控制台上没有返回任何内容。我需要打印方法吗?抱歉,我不熟悉愚蠢的 oop,只做程序和功能。 谢谢 fro…

    Python开发 2023年4月6日
    00
  • python实现中文输出的两种方法

    这里就为你详细讲解一下Python实现中文输出的两种方法,包含两个示例。 方法一:使用unicode字符串 在Python 2中,可以使用unicode字符串来输出中文。 首先在文件开头添加 # coding=utf-8,表示该文件使用utf-8编码。 然后使用u前缀来标记一个字符串为unicode字符串,例如: # coding=utf-8 name = …

    python 2023年6月3日
    00
  • python发送邮件接收邮件示例分享

    Python发送邮件接收邮件完整攻略 一、发送邮件 1. 导入模块 首先,在代码中导入所需的模块:smtplib、email.mime.multipart、email.mime.text、email.mime.image。其中,smtplib模块提供SMTP邮件发送功能,email.mime.multipart、email.mime.text及email.m…

    python 2023年5月20日
    00
  • Python enumerate()添加序号

    enumerate()是Python内置函数,主要作用是为一个可迭代对象添加一个索引序号。经常用于遍历列表、元组、字典等数据结构时,需要同时获取每个元素对应的索引值。 基本语法 enumerate(iterable, start=0) iterable:待添加序号的可迭代对象。 start:序号起始值,默认为0。 使用方法 使用enumerate()的一般流…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部