jjxx2005 发表于 2020-4-15 11:21:45

求助xpath问题,有id和class时怎么写?

本帖最后由 jjxx2005 于 2020-4-15 11:48 编辑

我想提取每一个<li>标签中<img>中的src属性

tree.xpath('//div[@class="proLis"]//img/@src')

这样写不行,他还有个id   请问像这种div里面有id和class的怎么办?



import requests
import os
from lxml import etree
# 创建一个文件夹,保存所有图片
if not os.path.exists('./海报'):
    os.mkdir('./海报')   
url = 'http://www.jkl.com.cn/cn/phoLis.aspx?id=697'
for i in range(1,5):
    data = {'__EVENTARGUMENT':'i'}
    UA伪装 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
    响应数据 = requests.get(url=url,params=data,headers=UA伪装).text
    tree = etree.HTML(响应数据)
    标签列表 = tree.xpath('//div[@class="proLis"]//img/@src')
    print(标签列表)

现在返回的都是空列表

qiuyouzhi 发表于 2020-4-15 11:24:53

用BS

jjxx2005 发表于 2020-4-15 11:27:50

qiuyouzhi 发表于 2020-4-15 11:24
用BS

BS4我会用,那个简单我现在学xpath

jjxx2005 发表于 2020-4-15 11:29:05

qiuyouzhi 发表于 2020-4-15 11:24
用BS

    soup = BeautifulSoup(响应数据,'lxml')
    标签列表 = soup.select('.proLis > ul > li')

Bs4 我已经成功搞定,但是xpath不懂

suchocolate 发表于 2020-4-15 11:44:43

写的没错

jjxx2005 发表于 2020-4-15 11:47:06

suchocolate 发表于 2020-4-15 11:44
写的没错

可是返回的都是空列表。。。

wp231957 发表于 2020-4-15 12:01:59

jjxx2005 发表于 2020-4-15 11:47
可是返回的都是空列表。。。

有id的和class的,用一个就可以了
不过id 是唯一的,class却是可能有重复的

suchocolate 发表于 2020-4-15 12:02:53

我稍稍改了改,可以的,另外字典data的i不要带引号。
import requests
import os
from lxml import etree

# 创建一个文件夹,保存所有图片
if not os.path.exists('post'):
    os.mkdir('post')
url = 'http://www.jkl.com.cn/cn/phoLis.aspx?id=697'
for i in range(1, 5):
    data = {'__EVENTARGUMENT': i}
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
    r = requests.get(url=url, params=data, headers=headers)
    html = etree.HTML(r.text)
    result = html.xpath('//div[@class="proLis"]//img/@src')
    print(result)

jjxx2005 发表于 2020-4-15 12:03:07

wp231957 发表于 2020-4-15 12:01
有id的和class的,用一个就可以了
不过id 是唯一的,class却是可能有重复的

我用哪个都返回空列表

兢兢 发表于 2020-4-15 17:51:15

tree.xpath('//div[@class="proLis"]/ul/li/a/img/@src')
页: [1]
查看完整版本: 求助xpath问题,有id和class时怎么写?