当前位置: 首页 > news >正文

打卡学习Python爬虫第五天|使用Xpath爬取豆瓣电影评分

思路:使用Xpath爬取豆瓣即将上映的电影评分,首先获取要爬取页面的url,查看页面源代码是否有我们想要的数据,如果有,直接获取HTML文件后解析HTML内容就能提取出我们想要的数据。如果没有则需要用到浏览器抓包工具,二次才能爬取到。其次观察HTML代码的标签结构,通过层级关系找到含有我们想要的数据的标签,提取出数据。最后保存我们的数据。

 

1、获取url

这里我们可以看到,有的电影是暂时没有评分的,等一下爬出的数据要做处理。

 2、观察页面源代码

 数据存放在同一级的多个li标签中,我们只需要利用相对查找,循环遍历就能找到所有的libi'a

3、快速获取Xpath的方法

找到想要的标签-->右键-->复制-->复制完整的Xpath

 4、完整代码和结果

# 获取页面源代码
# 提取和解析数据
import requests
from lxml import etree
import csvurl = 'https://movie.douban.com/'
# headers每个人的不一样,要去看响应头
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url,headers=headers)
# print(response.text)
html = etree.HTML(response.text)
movie_list = html.xpath('/html/body/div[3]/div[1]/div/div[2]/div[1]/div[2]/ul/li')
# 初始化一个列表来存储电影数据字典
movies_dict = []# 提取数据
for movie in movie_list:title_elements = movie.xpath('./@data-title')  # ./相对路径if title_elements:  # 确保列表不为空name = title_elements[0]else:name = "暂无标题"score_elements = movie.xpath('./ul/li[3]/span[2]/text()')if score_elements:  # 确保列表不为空score = score_elements[0]else:score = "暂无评分"# print(name, score)movie_dict = {'name':name,'score':score}movies_dict.append(movie_dict)
f = open('movies.csv','w',encoding='utf-8',newline='')
writer = csv.DictWriter(f,fieldnames=['name','score'])
writer.writeheader()
for movie in movies_dict:writer.writerow(movie)f.flush()
print("结束!")
response.close()

 

 


http://www.mrgr.cn/news/11660.html

相关文章:

  • 流媒体协议分析
  • npm install报错解决记录
  • MySQL空间管理:查询、优化与碎片清理
  • 毕 业 设 计(论 文)远程接入企业网络规划与设计
  • 【Docker】安装Docker环境遇到的坑(VirtualBox)
  • 设计模式之简单工厂模式
  • npm镜像源报错 unexpected token >
  • zotero同步之infiniteCLOUD网盘 WebDAV
  • vue3组件封装系列-表格及分页-第二弹
  • word文档合并样式问题
  • 国产游戏行不行,主要还得“盘”商业模式!
  • 【Docker】Linux系统以及威联通QNAP部署思源笔记的通用教程
  • 一文读懂 DDD领域驱动设计
  • Overleaf中插图需要的pdf图片格式制作方法(python)
  • 【RST示例】Pick and Place Using RRT for Manipulators使用 RRT(快速扩展随机树)进行机械臂的抓取与放置
  • 『功能项目』技能释放【08】
  • 三种通过代码创建矢量文件的方法及例子
  • helm安装jenkins保姆级别
  • 【HTML】模拟二级菜单【附源代码】
  • day-41 零钱兑换