鱼C论坛

 找回密码
 立即注册
查看: 1765|回复: 16

[已解决]关于scrapy Xpath定位深层资源的问题

[复制链接]
发表于 2017-12-27 12:50:31 | 显示全部楼层 |阅读模式

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

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

x
     研究了一两天还是没头绪,看了很多的文档资料还是不能理解,也就是还没有解决我的问题:

我想定位到最里面的漫画网址,试了各种方法,却始终找不出来
3Z~V3~1Y}HCPFWSCNF6_GX6.png
请问这种情况到底要怎么定位才能精确
最佳答案
2017-12-28 15:18:39
//div[@id="item_cover_14"]//@style
返回的是:
background:url(

                               
登录/注册后可看大图
);background-size:100% auto;

re.findall("http.*jpg", s)
['http://static.event.mihoyo.com/ip_resources/comic/cover/0014.jpg']

scrapy shell 中的response 没有加载这些cover 所以返回的是空
QQ截图20171228151757.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-27 12:51:25 | 显示全部楼层
不好意思网址元素那个图忘了传
K`U`RN2]]7CZU}TZ]3N`(GA.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 12:53:59 | 显示全部楼层
我尝试了很多方式,比如 sel.xpath('//div/a'),这已经能定位到最深的层了,却远远不够。我看了很多// 或者/的方法还有*还是不太懂。唉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 18:06:04 | 显示全部楼层
来个人帮下忙,求大神了
给10鱼币,今天鱼币都给你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 20:36:51 | 显示全部楼层
给个网址试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 20:39:09 | 显示全部楼层

试一下:
xpath("//div[@class='item_cover']@style")
再用re来提取url.

评分

参与人数 1鱼币 +5 收起 理由
JAY饭 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 00:45:42 | 显示全部楼层
优先使用id,使用class定位要看看是不是唯一,使用css也挺好用的

评分

参与人数 1鱼币 +5 收起 理由
JAY饭 + 5

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 08:30:51 | 显示全部楼层

还是失败了,网址是http://www.benghuai.com/comic/
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 08:31:18 | 显示全部楼层
ド゛゜范 发表于 2017-12-28 00:45
优先使用id,使用class定位要看看是不是唯一,使用css也挺好用的

css我还没用过,一会去看看教程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-28 15:18:39 | 显示全部楼层    本楼为最佳答案   
//div[@id="item_cover_14"]//@style
返回的是:
background:url(

                               
登录/注册后可看大图
);background-size:100% auto;

re.findall("http.*jpg", s)
['http://static.event.mihoyo.com/ip_resources/comic/cover/0014.jpg']

scrapy shell 中的response 没有加载这些cover 所以返回的是空
QQ截图20171228151757.png

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
JAY饭 + 5 + 3

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 16:46:34 | 显示全部楼层
Elastcio 发表于 2017-12-28 15:18
//div[@id="item_cover_14"]//@style
返回的是:
background:url();background-size:100% auto;

哦哦,那是因为网站设置了防爬虫,还是说scrapy shell自身返回里面不包括这些具体信息?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 16:48:29 | 显示全部楼层
Elastcio 发表于 2017-12-28 15:18
//div[@id="item_cover_14"]//@style
返回的是:
background:url();background-size:100% auto;

所以我只能用别的方法来定位这些资源吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 16:54:32 | 显示全部楼层
Elastcio 发表于 2017-12-28 15:18
//div[@id="item_cover_14"]//@style
返回的是:
background:url();background-size:100% auto;

对了,大神,你这用的是BeautifulSoup还是request,还是scrapy.xpath导出来的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 17:14:29 | 显示全部楼层
Elastcio 发表于 2017-12-28 15:18
//div[@id="item_cover_14"]//@style
返回的是:
background:url();background-size:100% auto;

在命令行界面,我试着输入:
re.compile("http.*jpg",sel.xpath('//div[@id="item_cover_14"]//@style')[0].extract()
还是出错。说明里面还是没有内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-28 22:27:24 From FishC Mobile | 显示全部楼层
求帮忙解读下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-31 11:11:13 | 显示全部楼层

我用的scrapy.xpath 我也是刚学
正则那一句我是在idle里面试的
我觉得可能是shell没有读那些内容,所以内容为空
你可以用scrapy写个完整的试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-31 12:14:01 | 显示全部楼层
Elastcio 发表于 2017-12-31 11:11
我用的scrapy.xpath 我也是刚学
正则那一句我是在idle里面试的
我觉得可能是shell没有读那些内容,所以 ...

感觉它应该是个动态网站,没法爬取内部网址,我最后还是直接把漫画地址复制下来,然后迭代出后续的漫画地址,这样去爬取漫画,但是这不是我想要的,关于Xpath还是没用到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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