刮擦式无限滚动-没有分页指示

时间:2019-09-09 22:03:25

标签: python scrapy

我是网络爬虫的新手,当我尝试用无限滚动方式爬网时遇到了一些问题。我看了其他一些问题,但找不到答案,所以希望有人可以在这里帮助我。

我正在http://www.aastocks.com/tc/stocks/analysis/stock-aafn/00001/0/all/网站上工作。我有以下(非常基本的)代码段,我可以在第一页上获得每篇文章(20个条目)。

    def parse(self, response):

        # collect all article links
        news = response.xpath("//div[starts-with(@class,'newshead4')]//a//text()").extract()  
        # visit each news link and gather news info
        for n in news:
            url = urljoin(response.url, n)
            yield scrapy.Request(url, callback=self.parse_news)

但是,我不知道如何转到下一页。我在线阅读了一些教程,例如转到Inspect-> Network并在滚动后观察Request URL,它返回http://www.aastocks.com/tc/resources/datafeed/getmorenews.ashx?cat=all&newstime=905169272&newsid=NOW.895783&period=0&key=&symbol=00001,在这里找不到分页指示或其他模式可以帮助我转到下一页。当我将此链接复制到新选项卡时,我看到带有下一页新闻的json文档,但没有url。在这种情况下,我该如何解决?非常感谢!

1 个答案:

答案 0 :(得分:-1)

链接

http://www.aastocks.com/tc/resources/datafeed/getmorenews.ashx?cat=all&newstime=905169272&newsid=NOW.895783&period=0&key=&symbol=00001

使用诸如Android Studio之类的值提供JSON数据,您可以使用它们生成新闻链接

NOW.XXXXXX

如果向下滚动几次,您将看到接下来的页面会生成相似的链接,但是具有不同的参数"http://www.aastocks.com/tc/stocks/analysis/stock-aafn-con/00001/" + "NOW.XXXXXX" + "/all" newstime

如果您检查JSON数据,则会看到最后一项的值newsid'dtd'与用于下载的链接中的参数'id'newstime相同下一页的JSON数据。

因此,您可以生成链接以获取下一页的JSON数据。

newsid

使用"http://www.aastocks.com/tc/resources/datafeed/getmorenews.ashx?cat=all&newstime=" + DTD + "&newsid=" + ID + "&period=0&key=&symbol=00001"

的示例
requests
相关问题