繁体   English   中英

Python Scrapy没有遍历所有标签

[英]Python Scrapy not going through all the tags

我正在尝试编写一个ebay脚本,该脚本遍历页面中的每个产品,然后转到下一页,并且执行相同的操作

但是由于某种原因,脚本会转到每个下一页,而不是通过页面上的每个项目,我想我已经正确地编写了选择器

ul包含代表页面上每个项目的所有li元素

但是问题很棘手,只有通过页面的第一个链接,然后跳过页面的其余部分,然后转到下一页

对于每一页,scrapy只需要一个项目,就应该一个接一个地处理所有项目

我已经使用了xpath选择器.//ul[@id="ListViewInner"]/li具有ID ListViewInnerul及其下的每个li

我已经使用了每个li都有的css选择器.sresult.lvresult.clearfix.li.shic类,但是在每种情况下

从页面中仅取出一项后停止 这里 我正在打印我在这里的每个项目部分(应输入刮擦的地方),但仅在第一个元素未通过页面中其余49个项目之后退出

这是简单的代码

class EbayspiderSpider(scrapy.Spider):
    name = "ebayspider"
    #allowed_domains = ["ebay.com"]
    start_urls = ['http://www.ebay.com/sch/hfinney/m.html?item=132127244893&rt=nc&_trksid=p2047675.l2562']


    def parse(self, response):

        DEF_SELECTOR = './/*[@id="ListViewInner"]/li'

        for attr in response.xpath(DEF_SELECTOR):

            #item = EbayItem()
            #linkse = 'a.vip ::attr(href)'
            #link = attr.css(linkse).extract_first()
            #yield scrapy.Request(urljoin(response.url, link), callback=self.parse_link, meta={'item': item})"""

            print '\n\n\tI AM HERE!!'
        #next_page = '.gspr.next ::attr(href)'
        #next_page = response.css(next_page).extract_first()
        #if next_page:
            #yield scrapy.Request(urljoin(response.url, next_page), callback=self.parse)

我评论了执行部分,因为该程序甚至没有通过每页50个产品

这是页面中的检查元素

这里 并扩大 这里

我在这里做错了什么?

疯狂猜测:在settings.py中设置ROBOTSTXT_OBEY=False

您的日志显示scrapy正在下载robots.txt,如果它遵循其内容,则绝对不会进一步爬网。

除此之外,我看不出您的解析函数不应提取多个项目/链接的原因。

当我在scrapy shell运行此scrapy shell (没有ROBOTSTXT_OBEY)时:

for attr in response.xpath('//*[@id="ListViewInner"]/li'):
    print attr.css('a.vip ::attr(href)').extract()

(根据您的代码,这是100%)...我收到了一长串网址:

[u'http://www.ebay.com/itm/Cat-Caterpillar-Excavator-Monitor-320B-320BL-320BLN-321B-322BL-325BL-151-9385-/361916086833?hash=item5443e13a31:g:NMwAAOSwX~dWomWJ']
[u'http://www.ebay.com/itm/257954A1-New-Case-580SL-580SM-580SL-Series-2-Backhoe-Loader-Hydraulic-Pump-/361345120303?hash=item5421d8f82f:g:KQEAAOSwBLlVVP0X']
#.....

...这就是您的期望。

我在您的代码中看到的另一个问题是,如何通过将response.url与link结合起来来创建请求URL的方式,而link已经拥有一个完整的链接。 最好在这里使用Scrapy的链接提取程序,因为它们开箱即用地处理了这种情况。

附言:请以文本格式发布您的日志,以使搜索和区分更加容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM