zl程序教程

您现在的位置是:首页 >  Python

当前栏目

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

2023-02-18 16:47:49 时间

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

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

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

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

from lxml import etree

3.代码如下:

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插件,可以在谷歌应用商店进行下载,安装后就可以直接在页面上使用了。