首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >粗糙的Xpath返回null,但在Chrome中工作正常

粗糙的Xpath返回null,但在Chrome中工作正常
EN

Stack Overflow用户
提问于 2020-02-13 02:09:34
回答 1查看 73关注 0票数 0

我对Scrapy还很陌生,但我正在设计一个网络抓取工具来从GoFundMe中提取某些信息,特别是在这种情况下,有多少人为一个项目捐款。我已经写了一个xpath语句,它在Chrome中运行良好,但在Scrapy中返回null。

一个随机的例子是https://www.gofundme.com/f/passage/donations,它目前有22个捐赠。当在Chrome inspect中输入以下内容时,我会得到我需要的“捐赠(22)”-

代码语言:javascript
复制
//h2[@class="heading-5 mb0"]/text()

然而,在我的Scrapy爬行器中,以下结果为空-

代码语言:javascript
复制
class DonationsSpider(scrapy.Spider):
name = 'get_donations'

start_urls = [
    'https://www.gofundme.com/f/passage/donations'
]

def parse(self, response):
    amount_of_donations = response.xpath('//h2[@class="heading-5 mb0"]/text()').extract_first()

    yield{
        'Donations': amount_of_donations
    }

有人知道为什么Scrapy看不到这个值吗?

我这样做是为了找出蜘蛛的其余部分需要循环多少次,因为当我硬编码这个值时,它没有问题,并产生了所有的捐赠。

EN

回答 1

Stack Overflow用户

发布于 2020-02-14 22:12:16

嗯,因为有许多请求正在进行中,实现请求"https://www.gofundme.com/f/passage/donations“。哪里

利用它读取javascript代码并从不同端点获取所有响应来满足您请求,您的chrome足够聪明,能够理解JavaScript

有一个对端点"https://gateway.gofundme.com/web-gateway/v1/feed/passage/counts“的请求,它加载您正在查找的数据。这是你的python脚本不能做的,也不推荐你这样做。

相反,您可以直接调用该api并获得数据,好消息是端点响应非常结构化、易于解析的JSON数据。

我相信您也在寻找来自端点"https://gateway.gofundme.com/web-gateway/v1/feed/passage/donations?limit=20&offset=0&sort=recent“的数据。

有关更多信息,请参阅我的clicking here博客

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

https://stackoverflow.com/questions/60194589

复制
相关文章

相似问题

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