Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
想用Scrapy来刮网站,但不确定是否有办法绕过javascript_Javascript_Python_Selenium_Scrapy_Http Headers - Fatal编程技术网

想用Scrapy来刮网站,但不确定是否有办法绕过javascript

想用Scrapy来刮网站,但不确定是否有办法绕过javascript,javascript,python,selenium,scrapy,http-headers,Javascript,Python,Selenium,Scrapy,Http Headers,我有一份纽约市学校的学校ID列表。我想收集这些学校的公开预算数据。预算数据可从以下网站获得: 我使用Python来完成这项任务,对于浏览器自动化,我知道scrapy比selenium快得多。但问题是,我需要与页面交互。也就是说,我必须输入学校ID以及感兴趣的年份(最终我要收集每年的预算数据)。这个交互(据我所知)然后调用Javascript来获取新数据 我希望有办法解决这个问题,这样我就可以使用刮屑而不是硒,因为硒的作用很慢。我取得的一些进步是,我发现了以下类型的URL(我不记得我是如何不幸地

我有一份纽约市学校的学校ID列表。我想收集这些学校的公开预算数据。预算数据可从以下网站获得:

我使用Python来完成这项任务,对于浏览器自动化,我知道scrapy比selenium快得多。但问题是,我需要与页面交互。也就是说,我必须输入学校ID以及感兴趣的年份(最终我要收集每年的预算数据)。这个交互(据我所知)然后调用Javascript来获取新数据

我希望有办法解决这个问题,这样我就可以使用刮屑而不是硒,因为硒的作用很慢。我取得的一些进步是,我发现了以下类型的URL(我不记得我是如何不幸地发现这一点的):

可以直接为学校提供数据(我认为不必与表单或Javascript交互)。不幸的是,我只能在2019年使用这种方法


是否有人能够找到一种方法来构造URL,以便能够指定年份?或者有人可以告诉我这是否可行?

如果您查看浏览器开发工具的“网络”选项卡,您会注意到这都是关于标准post请求的。你可以复制它

从\u响应中生成scrapy.FormRequest.from(
答复,,
formid='form1',
formdata={'School_Code':'m015','Fiscal_Year':'2019'},
例如,callback=self.parse#u school
) 

对不起,我对这些东西不太熟悉。您是如何从浏览器的开发工具的网络选项卡中找出这个问题的?还有一个问题!这是否可能使用您认为的请求库进行操作?