【问题标题】:How can I enable JavaScript in a Scrapy URL Request?如何在 Scrapy URL 请求中启用 JavaScript?
【发布时间】:2019-04-15 22:58:37
【问题描述】:

我正在尝试使用scrapy https://www.superbancos.gob.pa/es/fin-y-est/reportes-estadisticos?field_ano_rep_est_value=2018从该站点抓取数据

但我得到的响应是以下 html 响应:

您正在被重定向... 需要 Javascript。请先启用 javascript,然后才能看到此页面。

我尝试从 Chrome 浏览器中禁用 JavaScript 以查看是否可以获得相同的 Scrapy 响应,但它一直向我显示数据。

我不知道是否需要在我的 settings.py 中更改或添加一些东西

可能是请求标头吗?还是代理?

class TestSpider(scrapy.Spider):
    name = "test"        
    def start_requests(self):
        url = 'https://www.superbancos.gob.pa/es/fin-y-est/reportes-estadisticos?field_ano_rep_est_value=2018'
        yield scrapy.Request(url=url, callback=self.parse)
     
    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'report-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)

【问题讨论】:

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


【解决方案1】:

使用这些标头和 cookie 看看区别

cookies = {
    'sucuri_cloudproxy_uuid_3763320b2': 'b0cda35ef63b5b3df4215f2b7902756f',
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Connection': 'keep-alive',
    'Upgrade-Insecure-Requests': '1',
    'Cache-Control': 'max-age=0',
    'TE': 'Trailers',
}

【讨论】:

  • 我得到了相同的结果,我也尝试使用scrapy-fake-useragent
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2013-12-03
  • 2014-09-13
  • 1970-01-01
  • 2016-06-16
  • 2016-01-01
  • 1970-01-01
相关资源
最近更新 更多