爬取豆瓣电影top100 使用pyquery

本文介绍了一个使用Python进行网页爬取的小型实战案例,通过解析豆瓣Top250电影页面获取电影名称、导演、评分等信息,并将数据存储为文本文件。该示例展示了如何利用PyQuery库来抓取和处理网页内容。

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

练手 
from pyquery import PyQuery as pq
import json
for num in range(11):
    doc = pq(url='https://movie.douban.com/top250?start=%d&filter=' % (num*25))
    ol = doc.find('ol')
    a = ol.find('li').items()
    num = 0
    for t in a:
        film = {
            'title': " ".join(t(".title").text().split()),
            'directors': " ".join(t.find('p:first-child').text().split()),
            'comment': " ".join(t(".inq").text().split()),
            'score': " ".join(t(".rating_num").text().split())
        }
        print(film)
        with open('douban.txt', 'a', encoding='utf-8') as f:
            f.write(json.dumps(film, ensure_ascii=False) + '\n')

在Jupyter Notebook中爬取豆瓣电影Top 100的信息通常涉及以下几个步骤: 1. **导入所需库**: 需要使用`requests`库来发送HTTP请求,`BeautifulSoup`库来解析HTML内容,以及`pandas`库来存储和处理数据。 ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. **获取网页源码**: 使用`requests.get`函数向豆瓣电影Top 100页面发送GET请求。但由于这个信息不是直接通过API获取,而是网站静态展示,我们需要访问豆瓣电影的URL(如`https://movie.douban.com/top250`),然后解析HTML获取数据。 3. **HTML解析**: 用BeautifulSoup解析返回的HTML文档,找到包含电影信息的部分。这可能涉及到选择特定CSS类名或ID来定位元素。 ```python url = "https://movie.douban.com/top250" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') ``` 4. **提取信息**: 找到每个电影条目的标题、评分、导演、演员等信息,并添加到一个列表或字典中。这可能需要遍历HTML结构,查找特定标签内的文本。 5. **转换为DataFrame**: 使用pandas将提取的数据结构化,创建一个DataFrame,方便后续分析和可视化。 ```python movies_data = [] for movie in soup.find_all('div', class_='hd'): title = movie.h3.a.text rating = movie.strong.text director = None # 根据页面结构查找导演信息 actors = None # 同样查找演员信息 movies_data.append({ 'title': title, 'rating': rating, 'director': director, 'actors': actors }) top_movies = pd.DataFrame(movies_data[:100]) ``` 6. **保存结果**: 最后,可以将DataFrame保存为CSV文件或直接显示在Notebook中。 ```python top_movies.to_csv('douban_top_100_movies.csv', index=False) top_movies.head() # 显示前几行数据 ``` 注意:爬取网站数据时,请遵守网站的robots.txt规则,并尊重版权,可能需要设置用户代理以避免被识别为爬虫。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值