鱼C论坛

 找回密码
 立即注册
查看: 5383|回复: 9

[已解决]爬虫 xpath 为空列表的问题

[复制链接]
发表于 2018-4-28 11:02:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from lxml import etree
from urllib import request

header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",
          "Referer":"https://www.qiushibaike.com/"}
url = "https://www.qiushibaike.com/imgrank/"
req = request.Request(url, data=None, headers=header)
ope = request.urlopen(req)
pic = ope.read()
epic = etree.HTML(pic)
pic_list = epic.xpath("//div[@class='article block untagged mb15']/div[@class='thumb']/a/img")
print(pic_list)
这样爬出来就是空的
如果把url = "https://www.qiushibaike.com/imgrank/"改为url = "https://www.qiushibaike.com/pic/"就有结果,两个网页的结构一模一样 xpath的查询条件也是一样,求问为什么匹配不到

其他很多网页都试过 ,爬 多个div下的一直爬出来都是空
最佳答案
2018-5-2 10:30:45
我看的源码是class=“article block untagged mb15 typs_hot”
用div[contain(@class,"article block untagged mb15")]试试,好像是这么写的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-28 13:56:15 | 显示全部楼层
xpath是否能在网页中找到信息,你把你写的xpath放到网页中查找一下试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-29 07:24:21 | 显示全部楼层
那就是https://www.qiushibaike.com/imgrank/没有 [@class='article block untagged mb15']/div[@class='thumb']/ 其中一个class的类呗,两个网页不一定使用的CSS修饰的class一样啊,看看源码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 09:28:29 | 显示全部楼层
galaxybamboo 发表于 2018-4-29 07:24
那就是https://www.qiushibaike.com/imgrank/没有 [@class='article block untagged mb15']/div[@class='th ...

源码里 有 [@class='article block untagged mb15']/div[@class='thumb']这个标签的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 09:32:02 | 显示全部楼层
gopythoner 发表于 2018-4-28 13:56
xpath是否能在网页中找到信息,你把你写的xpath放到网页中查找一下试试

没懂你的意思 我源码看下来2个网页都有在class='article block untagged mb15'下面也有class='thumb' 但就是没找到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-2 10:30:45 | 显示全部楼层    本楼为最佳答案   
我看的源码是class=“article block untagged mb15 typs_hot”
用div[contain(@class,"article block untagged mb15")]试试,好像是这么写的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 10:45:10 | 显示全部楼层
chakyam 发表于 2018-5-2 10:30
我看的源码是class=“article block untagged mb15 typs_hot”
用div[contain(@class,"article  ...

article block untagged mb15 不就包括了article block untagged mb15 typs_hot 这个吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-2 10:55:21 | 显示全部楼层
本帖最后由 hpv216 于 2018-5-2 11:03 编辑
chakyam 发表于 2018-5-2 10:30
我看的源码是class=“article block untagged mb15 typs_hot”
用div[contain(@class,"article  ...


这个contain 我倒是没用过  要不要加s  contains

试过了 现在可以了pic_list = epic.xpath("//div[contains(@class,'article block untagged mb15')]/div[@class='thumb']/a/img")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-30 22:56:15 | 显示全部楼层
hpv216 发表于 2018-5-2 10:45
article block untagged mb15 不就包括了article block untagged mb15 typs_hot 这个吗?

article block untagged mb15 typs_hot
您好   
源码只有这个 article block untagged mb15 没有typs_hot 是不是就匹配不到??还有typs_long的?
应该怎么写??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-30 22:57:13 | 显示全部楼层
hpv216 发表于 2018-5-2 09:28
源码里 有 [@class='article block untagged mb15']/div[@class='thumb']这个标签的

同学 你这个源码在哪看的啊??有链接吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-11 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表