如何获取不同页面的cURL响应?

时间:2016-12-18 11:39:08

标签: python curl scrapy

我正在处理一个小型数据抓取项目,并希望从网站https://www.germanystartupjobs.com/获取所有工作。作业将作为POST请求加载。我可以进入各个页面并获取POST请求的cURL并在终端中播放并获得一些JSON。我得到的JSON具有以下格式(我提供了从Firefox network tab获得的内容,cURL在终端中也提供了相同的格式),

enter image description here

现在,我需要html tag内的所有内容,我可以使用代码段迭代相应网页上的href

    html = data['html']
    selector = scrapy.Selector(text=data['html'], type="html")
    hrefs = selector.xpath('//a/@href').extract()
    for href in hrefs: 
        // some code 

我使用scrapy,惯例是使用start_urls列表来抓取页面然后,我可以按照我喜欢的方式将所有代码放在parse函数中。

这是另一个问题。在相应的网站中,共有17页,第一页的链接为https://www.germanystartupjobs.com/,其余页面具有相同的链接https://www.germanystartupjobs.com/#s=1。因此,您无法根据链接确定您所在的页面:可能是3或9我只是不知道。

总结一下这个问题,我会使用Python获得所有17个页面的html = data['html']值,其中我只有2个网络链接:https://www.germanystartupjobs.com/https://www.germanystartupjobs.com/#s=1

1 个答案:

答案 0 :(得分:1)

如果查看网络面板中的POST - 标签,您应该会看到请求的不同参数。您所在的页面位于此选项卡中。

您可以在请求中传递此参数(因此在yield scrapy.Request中),以便循环显示页码,并将其传递给您的请求。例如,您可以执行一个请求获取JSON对象中的最大页码(max_num_pages),然后逐步传递页码,直到您请求每个页码。

查看documentation个请求。