如何获得不同页面的卷曲响应?

2024-04-24 22:43:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个小的数据收集项目,希望从网站https://www.germanystartupjobs.com/获得所有的工作。作业作为POST请求加载。我可以进入各个页面,得到POST请求的卷曲,在终端中播放,得到一些JSON。我得到的JSON格式如下(我提供了从Firefoxnetwork 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个web链接:https://www.germanystartupjobs.com/https://www.germanystartupjobs.com/#s=1?你知道吗


Tags: 代码httpscomjson终端内容data网站
1条回答
网友
1楼 · 发布于 2024-04-24 22:43:10

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

你可以在你的请求中传递这个参数(在你的yield scrapy.Request)这样你就可以在页码上循环,在你的请求中传递它。例如,您可以执行一个请求do get the maximum page numbers(JSON对象中的max_num_pages),然后以增量方式传递页码,直到您请求每个页码为止。你知道吗

查看请求上的documentation。你知道吗

相关问题 更多 >