首页 > 解决方案 > 为什么这段代码中的 Scrapy Selector Xpath 结果总是 None ?

问题描述

专业数据猎人,我试图抓取一个最初仅列出 5 个项目的网页,然后通过单击“查看更多”按钮列出所有其他项目。我试图将按钮内的链接传递给主要响应:定位器是按钮 XPath。 这是按钮的完整根路径。

    locator = "//div[@class='sc-AxjAm sc-pscky dyWQkt']/div[@class='ais-InstantSearch__root']/div[@class='sc-AxjAm sc-pscky btewui']/div[@class='sc-AxjAm sc-pscky cZkcda']/a[@class='sc-pQEbo dpfZiE xz9rvh-0 iJZnxt']/@href"
    see_more = response.xpath(locator).extract_first()
    if see_more is not None:
        link = response.urljoin(see_more)
        yield scrapy.Request(url=link, callback=self.parse)

即使在单击按钮之前,我总是得到“无”的结果:我尝试了这个函数来测试结果:

    def parse(self, response): 
        yield {
          'see_more_link' : response.xpath("//div[@class='sc-AxjAm sc-pscky dyWQkt']/div[@class='ais-InstantSearch__root']/div[@class='sc-AxjAm sc-pscky btewui']/div[@class='sc-AxjAm sc-pscky cZkcda']/a[@class='sc-pQEbo dpfZiE xz9rvh-0 iJZnxt']/@href").extract_first()
    }

这是使用此 xpath 得到的结果

标签: pythonweb-scrapingscrapy

解决方案


推荐阅读