利用lxml爬取艺恩电影排行榜,爬取四页信息
时间: 2023-11-02 09:22:18 浏览: 92
好的,以下是利用lxml爬取艺恩电影排行榜四页信息的代码:
```python
import requests
from lxml import etree
for page in range(1, 5):
url = f'https://www.endata.com.cn/BoxOffice/BO/Year/?year=2019&p={page}'
response = requests.get(url)
html = response.content
selector = etree.HTML(html)
movie_list = selector.xpath('//table[@class="tabMain"]/tbody/tr')
for movie in movie_list:
rank = movie.xpath('td[1]/text()')[0]
name = movie.xpath('td[2]/a/text()')[0]
box_office = movie.xpath('td[3]/text()')[0]
print(rank, name, box_office)
```
这段代码会爬取艺恩电影排行榜2019年的前四页信息,每页有50部电影,每部电影的信息包括排名、电影名称、票房。我们利用requests发送get请求获取网页源代码,然后利用lxml解析HTML代码,获取每部电影的信息,最后打印出来。
相关问题
爬取艺恩电影排行榜用lxml爬取四页信息
好的,我可以为您提供一个示例代码来爬取艺恩电影排行榜的四页信息。请先确保您已经安装了lxml模块。
```python
import requests
from lxml import etree
for page in range(1, 5):
url = f'https://www.endata.com.cn/BoxOffice/BO/Year/total?year=2021&pIndex={page}'
response = requests.get(url)
html = response.content.decode('utf-8')
selector = etree.HTML(html)
movie_names = selector.xpath('//td[@class="titleColumn"]/a/text()')
movie_scores = selector.xpath('//td[@class="ratingColumn imdbRating"]/strong/text()')
for name, score in zip(movie_names, movie_scores):
print(name, score)
```
这段代码会爬取2021年的电影排行榜前四页信息。每页包含50部电影,因此总共会输出200部电影的名称和评分。注意,为了避免被反爬虫机制封锁,建议加入适当的延时等反爬虫措施。
爬取艺恩电影排行榜用re爬取六页信息
好的,我可以为您提供一个示例代码来爬取艺恩电影排行榜的六页信息。请先确保您已经安装了re模块。
```python
import requests
import re
for page in range(1, 7):
url = f'https://www.endata.com.cn/BoxOffice/BO/Year/total?year=2021&pIndex={page}'
response = requests.get(url)
html = response.content.decode('utf-8')
pattern = r'<tr class="even|odd">.*?<td class="titleColumn">.*?<a.*?>(.*?)</a>.*?</td>.*?<td class="ratingColumn imdbRating">.*?<strong>(.*?)</strong>'
results = re.findall(pattern, html, re.S)
for result in results:
print(result[0], result[1])
```
这段代码会爬取2021年的电影排行榜前六页信息。每页包含50部电影,因此总共会输出300部电影的名称和评分。注意,为了避免被反爬虫机制封锁,建议加入适当的延时等反爬虫措施。此外,由于使用正则表达式匹配HTML代码,代码可读性较差,建议使用其他库如BeautifulSoup或lxml。
阅读全文