前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python:使用xpath获取想要的数据

python:使用xpath获取想要的数据

作者头像
句小芒
发布2022-12-29 17:58:12
1.7K0
发布2022-12-29 17:58:12
举报

页面返回的element是非常多的东西,有很多并不是我们所需要的,所以需要对数据进行筛选。

这里引入一个第三方模板:lxml

1.引入前需要安装,可以通过命令行:pip install lxml或者直接在编辑器搜索模板进行安装。

2.安装成功后:需要在代码顶部引入。

代码语言:javascript
复制
from lxml import etree

3.代码如下:

代码语言:javascript
复制
import requests
from lxml import etree

url = "https://movie.douban.com/chart"
headers = {
    "Referer": "//m.douban.com/movie/",
    'User-Agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/68.0.3440.75 Safari/537.36"}
response = requests.get(url, headers=headers)
con = response.content.decode()
html = etree.HTML(con)
ret = html.xpath("//div[@class='indent']/div/table")
for table in ret:
    item = {}
    item['title'] = table.xpath(".//div[@class='pl2']/a/text()")[0].replace("/","").strip()
    item['href'] = table.xpath(".//div[@class='pl2']/a/@href")[0]
    item['src'] = table.xpath(".//a[@class='nbg']/img/@src")[0]
    print(item)

requests模块用来模拟浏览器发送请求,etree用来筛选数据。

strip()用来移除首尾的空格。replace("/","")表示用空字符来替换"/",

需要注意的是在循环时路径前必须是对于当前路径,也就是必须加//前必须加.

4.输出如下

注:谷歌浏览器也提供了xpath插件,可以在谷歌应用商店进行下载,安装后就可以直接在页面上使用了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档