首页 > 编程语言 ># 使用Python爬虫抓取豆瓣电影标题# 使用Python爬虫抓取豆瓣电影标题

# 使用Python爬虫抓取豆瓣电影标题# 使用Python爬虫抓取豆瓣电影标题

时间:2024-10-09 21:53:50浏览次数:3  
标签:douban lxml 抓取 Python 爬虫 标题 titles requests div

一、前言

在这个小项目中,我们将学习如何使用Python的requests库和lxml库来爬取豆瓣电影首页上的电影标题,并将这些标题保存到一个文本文件中。这不仅能够帮助我们了解基本的网页抓取技术,还能让我们熟悉数据处理的基本流程。

二、环境准备

确保你的开发环境中已经安装了以下Python库:

  • requests:用于发送HTTP请求。
  • lxml:用于解析HTML内容。

可以通过pip命令安装它们:

pip install requests
pip install lxml

三、代码实现

3.1 导入所需库

import requests  # 导入requests库,用于发送HTTP请求
from lxml import etree  # 导入lxml库,用于解析HTML文本

3.2 发送请求并获取响应

在这里插入图片描述
爬取豆瓣实例网站:
https://movie.douban.com

url = 'https://movie.douban.com'  # 定义要访问的网址
headers = {  # 定义请求头,模拟浏览器访问
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.36'
}
response = requests.get(url=url, headers=headers)  # 发送GET请求,获取网页内容

3.3 解析网页内容

tree = etree.HTML(response.text)  # 使用lxml解析网页内容

3.4 提取电影标题

按F12打开开发者工具,再点击选取元素工具选中元素即可出现特定的抓取数据
在这里插入图片描述
使用XPath提取特定位置的图片alt属性中的电影标题。
在这里插入图片描述

titles = tree.xpath('/html/body/div[3]/div[1]/div/div[2]/div[1]/div[2]/ul/li/ul/li/a/img/@alt')  # 提取网页中的标题

3.5 保存结果

with open('./douban_titles.txt', 'w', encoding='utf-8') as fp:  
# 打开一个文件,用于存储提取到的标题,其中'./douban_titles.txt'代表的是在当前目录下生成的文档
    for title in titles:  # 遍历标题列表
        fp.write(f"{title}\n")  # 将标题写入文件
        print(title)  # 打印标题

四、运行结果

749局
只此青绿
志愿军:存亡之战
出走的决心
浴火之路
门前宝地
变形金刚:起源
熊猫计划
危机航线
爆款好人
荒野机器人
里斯本丸沉没
出入平安
非礼勿言
重生
逆行人生
姥姥的外孙
刺猬
抓娃娃
野孩子
富都青年
异形:夺命舰
祝你幸福!
一雪前耻
大场面
新大头儿子和小头爸爸6:迷你大冒险
皮皮鲁和鲁西西之309暗室
名侦探柯南:百万美元的五棱星
解密
通往夏天的隧道,再见的出口
全员嫌疑人
食神
白蛇:浮生
奇妙萌可大电影
开国宴风云
神偷奶爸4
狄仁杰之通天帝国
航海王:强者天下
乡见未晚
森林飞侠
稍微想起一些
靠近维米尔
地球脉动:极境生存
姜子牙
小孩儿
小猪哼唧
床与早餐
夜光藻
OK谢谢再见
洛克和舒尔
最后一聚
大人物
母狮

当你运行上面的代码后,你会看到控制台输出抓取到的电影标题,并且这些标题会被保存到当前目录下的douban_titles.txt文件中。

五、完整代码及总结

import requests  # 导入requests库,用于发送HTTP请求
from lxml import etree  # 导入lxml库,用于解析HTML文本

url = 'https://movie.douban.com'  # 定义要访问的网址

headers = {  # 定义请求头,模拟浏览器访问
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.36'
    }
response = requests.get(url=url, headers=headers)  # 发送GET请求,获取网页内容
# print(response.text)  # 打印网页内容
tree = etree.HTML(response.text)  # 使用lxml解析网页内容
titles = tree.xpath('/html/body/div[3]/div[1]/div/div[2]/div[1]/div[2]/ul/li/ul/li/a/img/@alt')  # 提取网页中的标题
# 打印提取到的标题
with open('./douban_titles.txt', 'w', encoding='utf-8') as fp:  # 打开一个文件,用于存储提取到的标题
    for title in titles:  # 遍历标题列表
        fp.write(f"{title}\n")  # 将标题写入文件
        print(title)  # 打印标题

通过这个简单的例子,我们学会了如何利用Python进行基本的网络爬虫操作。这只是一个起点,实际应用中可能需要处理更复杂的网页结构和反爬策略。希望你能通过实践进一步探索网络爬虫的世界!

标签:douban,lxml,抓取,Python,爬虫,标题,titles,requests,div
From: https://blog.csdn.net/2301_78198846/article/details/142796492

相关文章

  • 基于yolov8、yolov5的PCB板缺陷检测系统(含UI界面、数据集、训练好的模型、Python代码)
    blog.csdnimg.cn/direct/6f53422ed9fd44dc8daad6dc5481c4c9.png)项目介绍项目中所用到的算法模型和数据集等信息如下:算法模型:  yolov8、yolov8+SE注意力机制或yolov5、yolov5+SE注意力机制,直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑......
  • Python基于uniapp+Android平台的校园论坛交流系统 微信小程序z0c7d
    目录项目介绍具体实现截图开发者工具介绍技术路线解决的思路性能/安全/负载方面开发语言以及框架介绍数据库设计python-flask核心代码部分展示python-django核心代码部分展示详细视频演示源码获取项目介绍校园论坛系统设计的目的是为用户提供失物招领、二手闲置、跑......
  • Python,ModuleNotFoundError: No module named 'paho'
     Exceptioninthreaddjango-main-thread:    frompaho.mqttimportclientasmqtt_clientModuleNotFoundError:Nomodulenamed'paho'  解释:ModuleNotFoundError:Nomodulenamed'paho'表示Python解释器无法找到名为paho的模块。这通常意味着paho-mqtt客户端......
  • VSCode配置Python(记录)
    python安装官网在线安装或者下载离线包(勾选添加path环境变量)python指定版本运行把对应版本的python.exe复制一下,粘贴改名加个对应版本,因为添加了环境变量的缘故所以可以直接在命令窗中运行运行测试对应项目创建虚拟环境(包管理)tips:当然了,也可以用anaconda管理,但是加载比较......
  • python 打包 py 文件 为exe
    使用pyinstaller来进行打包pipinstallpyinstaller可能需要全局科学代理上网或者修改下载源地址执行命令图标path:C:\desktop\icon文件path:C:\pycharm\project\bingdundun.exe1、指定文件路径打包:pyinstaller-FC:\pycharm\project\bingdundun.exe2、不带窗......
  • python+flask计算机毕业设计银行资金账户管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和金融业务的日益复杂化,银行资金账户管理系统成为现代银行业不可或缺的一部分。传......
  • python+flask计算机毕业设计影评网站系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的快速发展和普及,影视娱乐产业迎来了前所未有的发展机遇。观众对于电影的选择和评价日益多元化,传统的电影宣传和评价方式已难以......
  • python+flask计算机毕业设计智慧外贸平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球化和信息技术的飞速发展,外贸行业正经历着前所未有的变革。传统的外贸模式在效率、信息透明度以及服务体验上已难以满足当前市场的......
  • python+flask计算机毕业设计自驾游信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会经济的快速发展和人民生活水平的不断提高,自驾游已成为现代人休闲度假的重要选择。自驾游以其自由度高、灵活性强的特点,吸引了越来......
  • python+flask计算机毕业设计影视资源管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和人们文化娱乐需求的日益增长,影视资源已成为现代人生活中不可或缺的一部分。无论是电影、电视剧还是纪录片,都以其......