有没有办法使Scrapy不检索加载屏幕?

时间:2020-06-11 03:21:58

标签: python-3.x web-scraping scrapy repl.it

我一直在遵循一个教程,并使用许多不同的库进行尝试,并且遇到相同的问题,Scrapy返回加载屏幕,而不是此处显示的实际内容:

</div>
<div style="margin-top: 20px; color: #FFFFFF; font-size: 14px; text-transform: uppercase; letter-spacing: 2px; font-family: sans-serif;">
Loading...
</div>
</div>

另外,这是我的python代码:

import scrapy

class RacerSpider(scrapy.Spider):
    name = 'racer'
    start_urls = ['https://nitrotype.com/racer/test']

    def parse(self, response):
        name = response.url.split('/')[-1]
        filename = f'Racer-{name}.html'

        with open(filename, 'wb') as f:
            f.write(response.body)
            f.close()

此代码用于在名为Nitrotype的游戏中抓取关于racer的数据

1 个答案:

答案 0 :(得分:0)

看起来您正在使用动态网站。

动态站点通常会向主文档发送“正在加载”,然后使用某种JavaScript填充内容。

您的链接不起作用,所以我无法重新创建您的确切问题,但是我有两件事适合您:

  1. 使用scrapy shell命令并为其指定URL。获得外壳程序后,运行view(response)来查看scrapy会得到什么。像这样:

    草皮外壳“ https://google.com” 从上面的命令加载的shell中查看(响应)#

  2. F12打开开发人员工具,转到网络选项卡,查看所有请求和响应。单击这些以查看您的数据在哪里。

完成此操作后,如果您认为仍需要渲染,请使用Splash或Selenium。