求助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(标签列表)
现在返回的都是空列表 用BS qiuyouzhi 发表于 2020-4-15 11:24
用BS
BS4我会用,那个简单我现在学xpath qiuyouzhi 发表于 2020-4-15 11:24
用BS
soup = BeautifulSoup(响应数据,'lxml')
标签列表 = soup.select('.proLis > ul > li')
Bs4 我已经成功搞定,但是xpath不懂 写的没错 suchocolate 发表于 2020-4-15 11:44
写的没错
可是返回的都是空列表。。。 jjxx2005 发表于 2020-4-15 11:47
可是返回的都是空列表。。。
有id的和class的,用一个就可以了
不过id 是唯一的,class却是可能有重复的 我稍稍改了改,可以的,另外字典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) wp231957 发表于 2020-4-15 12:01
有id的和class的,用一个就可以了
不过id 是唯一的,class却是可能有重复的
我用哪个都返回空列表 tree.xpath('//div[@class="proLis"]/ul/li/a/img/@src')
页:
[1]