首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scrapy -正在尝试获取“下一个”url

scrapy -正在尝试获取“下一个”url
EN

Stack Overflow用户
提问于 2015-11-19 04:20:24
回答 1查看 385关注 0票数 0

我正在使用scrapy,并试图提出一个restrict_xpaths规则,这样爬虫将总是只去下一个图像。

我从这个图像开始:https://www.flickr.com/photos/safaripartners/4838428819/in/photolist-qtC2e5-5iA4ZQ-8nydjx-zf1rvk-wvDaHE-8nBnhu-baArRv-36WzbG-2hLUaa-v6Mw1k-d33z5A-8nBniU-6jTfkT-6W6Sbu-5CtFsA-6RZZ5K-36WYuS-5DatmT-d5Qo1A-nMktKL-9wF1aF-hfuXhF-eLaQn5-5tR4Ri-prLcsi

我的目标是不断地抓取下一个。

我试过了:

代码语言:javascript
复制
name = "FlickerSpider"
allowed_domains = ["flickr.com"]
start_urls = [
"https://www.flickr.com/photos/indymcduff/6632326011/in/photolist-9uQnYG-9SnqTY-qjXTHY-onEUN5-5d72ri-tgMKAY-8qaRQL-on6ZLu-bnMg2B-8AVUgV-b75pst/"
]
rules = (
    #crawl to next image
    Rule(SgmlLinkExtractor(allow=(r'photos'),restrict_xpaths=('//class[@data="navigate-target navigate-next")]')) ,callback='parse_item', follow=True),
)

但我没有收到任何请求。有人建议我应该使用什么规则吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-11-19 23:59:58

您的restrict_xpaths表达式中存在语法错误。试一试

restrict_xpaths=('//a[@class="navigate-target navigate-next"]')

在Firebug for firefox中使用scrapy shell或$x来试用您的xpath总是值得的。当规则中出现类似这样的xpath问题时,它就会默默地失败。

更新

我应该给你这个xpath

restrict_xpaths=('//a[@class="navigate-target navigate-next"]/@href')

在Firebug中使用$x命令可以很好地工作。如你所说,它不适用于scrapy shell。页面的这一部分看起来不是普通HTML的一部分,而是在运行时生成的。除非您能找到替代的URL,否则您可能不得不使用Selenium之类的东西,它会在包含动态内容的标准浏览器中呈现页面。然后,Scrapy可以解析该HTML,包括您要查找的链接。看看这个question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33789607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档