python-3.x - 如何在 Scrapy URL 请求中启用 JavaScript?
问题描述
我正在尝试使用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)
解决方案
使用这些标头和 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',
}
推荐阅读
- javascript - 更改 v-select 组件的图标颜色
- xml - JAXB:在生成 Java 类之前简化 xsd(选择一个元素)
- php - 刚刚创建了一个带有 html 和 css 的搜索栏,我如何为 php 搜索表单使用相同的样式?
- range - 使用范围函数创建列表
- java - 这是解决“这个”特定问题的最佳方法吗?“反转字符串的程序。”
- android - 如何在 Kotlin 中使用 getDeclaringClass?
- swiftui - SwiftUI:显示警报时如何摆脱分段控制文本移动?
- java - java中的图像文件压缩
- c# - 时间:2019-05-10 标签:c#尝试重载从short到bool的强制转换
- css - div 行没有正确排列