在 scrapy 中渲染 JS 内容的 FormRequest shell
FormRequest that renders JS content in scrapy shell
我正在尝试使用以下表单数据从此 page 中抓取内容:
我需要将 County:
设置为乔治王子的 DateOfFilingFrom
并将 01-01-2000
设置为 01-01-2000
所以我执行以下操作:
% scrapy shell
In [1]: from scrapy.http import FormRequest
In [2]: request = FormRequest(url='https://registers.maryland.gov/RowNetWeb/Estates/frmEstateSearch2.aspx', formdata={'DateOfFilingFrom': '01-01-2000', 'County:': "Prince George's"})
In [3]: response
In [4]:
但它不起作用(响应是 None)另外,下一页看起来像下面动态加载的,我需要知道如何能够访问下面显示的每个链接检查后(据我所知,这可能是使用 Splash
完成的,但是,我不确定如何在 FormRequest
中组合 SplashRequest
并在 scrapy shell 用于测试目的。我需要知道我做错了什么以及如何呈现下一页(由下面显示的 FormRequest
产生的页面)
您发送的请求缺少几个字段,这可能是您没有收到回复的原因。您填写的字段也不符合他们在请求中期望的字段。处理此问题的一个好方法是使用 scrapy 的 from_response (doc),它可以根据表单中的信息为您填充一些字段。
对于这个网站,以下内容对我有用(使用 scrapy shell):
>>> url = "https://registers.maryland.gov/RowNetWeb/Estates/frmEstateSearch2.aspx"
>>> fetch(url)
>>> from scrapy import FormRequest
>>> req = FormRequest.from_response(
... response,
... formxpath="//form[@id='form1']", # specify the form on the current page
... formdata={
... 'cboCountyId': '16', # the county you select is converted to a number
... 'DateOfFilingFrom': '01-01-2001',
... 'cboPartyType': 'Decedent',
... 'cmdSearch': 'Search'
... },
... clickdata={'type': 'submit'},
... )
>>> fetch(req)
我正在尝试使用以下表单数据从此 page 中抓取内容:
我需要将 County:
设置为乔治王子的 DateOfFilingFrom
并将 01-01-2000
设置为 01-01-2000
所以我执行以下操作:
% scrapy shell
In [1]: from scrapy.http import FormRequest
In [2]: request = FormRequest(url='https://registers.maryland.gov/RowNetWeb/Estates/frmEstateSearch2.aspx', formdata={'DateOfFilingFrom': '01-01-2000', 'County:': "Prince George's"})
In [3]: response
In [4]:
但它不起作用(响应是 None)另外,下一页看起来像下面动态加载的,我需要知道如何能够访问下面显示的每个链接检查后(据我所知,这可能是使用 Splash
完成的,但是,我不确定如何在 FormRequest
中组合 SplashRequest
并在 scrapy shell 用于测试目的。我需要知道我做错了什么以及如何呈现下一页(由下面显示的 FormRequest
产生的页面)
您发送的请求缺少几个字段,这可能是您没有收到回复的原因。您填写的字段也不符合他们在请求中期望的字段。处理此问题的一个好方法是使用 scrapy 的 from_response (doc),它可以根据表单中的信息为您填充一些字段。
对于这个网站,以下内容对我有用(使用 scrapy shell):
>>> url = "https://registers.maryland.gov/RowNetWeb/Estates/frmEstateSearch2.aspx"
>>> fetch(url)
>>> from scrapy import FormRequest
>>> req = FormRequest.from_response(
... response,
... formxpath="//form[@id='form1']", # specify the form on the current page
... formdata={
... 'cboCountyId': '16', # the county you select is converted to a number
... 'DateOfFilingFrom': '01-01-2001',
... 'cboPartyType': 'Decedent',
... 'cmdSearch': 'Search'
... },
... clickdata={'type': 'submit'},
... )
>>> fetch(req)