Scrapy:我如何在一个只有当点击“showmore”按钮几次后才完成的页面中的表呢?

2024-10-03 21:35:09 发布

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

我用Scrapy来删除一个列出一些特定数据的网站,但是有一个按钮需要点击很多次,直到数据全部完成。在

页面的URL: www.websiteiamscraping.com/data/sheet/historical?s=MSA:CAS

当我单击showmore按钮时,发送的URL是:www.websiteiamscraping.com/data/ajax/getmorehistoricalsheets?StartDate=42598&s=MSA%3ACAS&isLRS=false(每次单击按钮时,StartDate参数都会更改)

这将返回JSON对象中HTML形式的附加数据,但是HTML数据似乎与ASCII符号混合在一起,比如:55.21k\u003c/span\u003e

我的代码如下:

class DataSpider(scrapy.Spider):
    name = "data"

    start_urls = [
        'www.websiteiamscraping.com/data/sheet/historical?s=MSA:CAS'
    ]

    def parse(self, response):
        page = response.url.split("=")[1].split(":")[0]
        filename = 'data-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)

问题:如何获得加载到所需页面中的所有数据(我丢弃的页面与获取JSON数据的页面不同)


Tags: 数据comjsonurldataresponsewww页面