python学习--爬取时光网top100电影名,导演,评分

本文介绍了使用Python爬虫抓取时光网top100电影的名称、导演和评分的过程。针对不同页面的网址规律进行处理,并利用XPath解析网页获取数据。在遇到评分缺失的情况时,通过try...except处理。文章结尾作者表示自己是初学者,欢迎读者指出错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python学习--爬取时光网top100电影名,导演,评分

一、思路

1.第一页的网址:http://www.mtime.com/top/movie/top100/,
第二页网址:http://www.mtime.com/top/movie/top100/index-2.html
两者比较没有规律,但从后面页的网址开始就有规律,所以考虑分成两段提取
2.在匹配评分的时候发现re匹配不出来(应该是个人能力问题),最终通过Xpath匹配
3.但在52名的电影没有评分,故在抓取评分的时候放了try,不然会报一个超出索引范围的错:
在这里插入图片描述
4.对输出稍微格式化了一个,但还是有不如意的地方

二、代码

import urllib.request,re
from lxml import etree
for j in range(10):
    print('正在爬取第 %d 页' %int(j+1),'......')
    if j == 0:
        url = "http://www.mtime.com/top/movie/top100/"
        date = urllib.request.urlopen(
爬取网站数据通常需要使用网络爬虫技术,比如Python的BeautifulSoup或Scrapy库,配合requests获取网页内容。对于你提到的时间网电影榜,这是一个HTML页面,我们可以解析HTML结构来提取所需的信息。以下是一个简化的步骤: 1. **安装必要的库**: - 使用`pip install requests beautifulsoup4 pandas openpyxl`安装所需的库。 2. **编写爬虫脚本**: ```python import requests from bs4 import BeautifulSoup import pandas as pd def get_movie_info(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # 提取信息部分(这将取决于实际的HTML结构) movie_list = soup.find('div', {'class': 'movie-list'}) movies = movie_list.find_all('li') # 假设每个电影信息都在li标签内 data = [] for movie in movies: rank = movie.find('span', {'class': 'rank'}).text.strip() # 排 title = movie.find('a').text.strip() # 电影称 director = movie.find('span', {'class': 'director'}).text.strip() if 'director' in movie else None # 导演 actors = [actor.text.strip() for actor in movie.find_all('span', {'class': 'actor'})] # 主演列表 rating = movie.find('i', {'class': 'rating'}).text.strip() or '-' # 评分 time = movie.find('span', {'class': 'year'}).text.strip() # 时间 data.append([rank, title, director, actors, rating, time]) # 将数据转换为pandas DataFrame df = pd.DataFrame(data, columns=['排', '电影称', '导演', '主演', '评分', '时间']) # 保存到Excel文件 df.to_excel('电影榜信息.xlsx', index=False) url = "http://list.mtime.com/listIndex" get_movie_info(url) ``` 注意:这个示例假设了HTML结构符合描述,实际操作中可能需要调整查找元素的部分以匹配真实的网页布局。同时,因为时光网可能会有反爬虫策略,所以在抓取数据时需遵守网站的robots.txt协议,并尽量减少对服务器的请求频率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值