首页 > Python资料 博客日记
15分钟学 Python 第40天:Python 爬虫入门(六)第一篇
2024-10-29 17:00:05Python资料围观31次
文章15分钟学 Python 第40天:Python 爬虫入门(六)第一篇分享给大家,欢迎收藏Python资料网,专注分享技术知识
Day40 :Python 爬取豆瓣网前一百的电影信息
1. 项目背景
在这个项目中,我们将学习如何利用 Python 爬虫技术从豆瓣网抓取前一百部电影的信息。通过这一练习,您将掌握网页抓取的基本流程,包括发送请求、解析HTML、存储数据等核心技术。
2. 项目目标
- 爬取豆瓣电影前一百部电影的信息,包括电影名称、评分、评价人数和影片链接。
- 将抓取的数据保存为CSV文件,便于后续分析。
3. 核心工具
- Python 3.x :作为编程语言。
- requests :用于发送 HTTP 请求。
- BeautifulSoup :用于解析 HTML 文档。
- pandas :用于数据存储和处理。
- CSV :文件格式,用于存储数据。
4. 环境准备
确保您的环境中安装了以下库。在终端中运行以下命令:
pip install requests beautifulsoup4 pandas
5. 数据抓取流程
5.1 确定目标网址
我们需要爬取的目标网址为:https://movie.douban.com/top250
5.2 发送请求
使用 requests
库向网页发送请求,获取网页内容。
5.3 解析HTML
使用 BeautifulSoup
解析获取的 HTML 文档。
5.4 提取电影信息
从解析的内容中提取所需的电影信息。
5.5 数据存储
将提取到的数据存储为 CSV 文件。
5.6 运行流程图
6. 示例代码
以下是完整的代码示例,分为几个功能部分以便更好理解。
6.1 导入必要的库
import requests
from bs4 import BeautifulSoup
import pandas as pd
6.2 发送请求并获取页面内容
def fetch_page(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
else:
print("请求失败", response.status_code)
return None
6.3 解析HTML并提取信息
def parse_page(html):
soup = BeautifulSoup(html, 'html.parser')
movies = []
for item in soup.find_all('div', class_='item'):
title = item.find('span', class_='title').text
rating = item.find('span', class_='rating_num').text
num_ratings = item.find('div', class_='star').find_all('span')[-1].text[:-3] # 去掉"人评价"
link = item.find('a')['href']
movies.append({
'Title': title,
'Rating': rating,
'Number of Ratings': num_ratings,
'Link': link
})
return movies
6.4 存储数据到CSV
def save_to_csv(movies, filename='douban_movies.csv'):
df = pd.DataFrame(movies)
df.to_csv(filename, index=False, encoding='utf-8-sig')
print(f"数据已保存到 {filename}")
6.5 主程序
def main():
url = 'https://movie.douban.com/top250'
html = fetch_page(url)
if html:
movies = parse_page(html)
save_to_csv(movies)
if __name__ == '__main__':
main()
7. 数据分析与检查
运行完毕后,我们可以使用 pandas 读取 CSV 文件并检查数据:
def load_and_check_csv(filename='douban_movies.csv'):
df = pd.read_csv(filename)
print(df.head())
print(f"总电影数: {len(df)}")
load_and_check_csv()
8. 样例输出
执行后,输出的 douban_movies.csv
文件中将包含如下示例数据:
Title | Rating | Number of Ratings | Link |
---|---|---|---|
肖申克的救赎 | 9.7 | 732099 | https://movie.douban.com/subject/278\n |
这个杀手不太冷 | 9.4 | 626208 | https://movie.douban.com/subject/1309191\n |
霸王别姬 | 9.6 | 595214 | https://movie.douban.com/subject/1291546\n |
9. 注意事项
- 反爬虫机制:豆瓣可能会使用反爬虫技术,如果频繁请求可能会被封禁,建议在请求之间加上延迟。
- 合法合规:请遵循使用网站的使用协议,确保抓取信息不违反网站的政策。
- 数据质量:抓取到的内容质量可能会有所不同,需要在处理和存储时多加注意。
10. 总结
通过这个项目,您学习了怎样使用 Python 爬虫从豆瓣网抓取数据。掌握了数据获取、解析和存储的基本流程。接下来可以尝试改进程序,例如:增加多线程支持、提取更多信息、抓取多个页面等,以深入理解 Python 爬虫的潜力和应用。
怎么样今天的内容还满意吗?再次感谢观众老爷的观看。
最后,祝您早日实现财务自由,还请给个赞,谢谢!
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj