我正在使用 Scrapy 尝试对 this 执行搜索网站。 我正在更改的字段是 Número do Processo na ORIGEM,其 ID 为“idNumeroOriginario”。
但是,Post 方法似乎并没有改变页面上的任何内容。
代码如下:
import scrapy
from scrapy.utils.response import open_in_browser
class MinimalSpider(scrapy.Spider):
name = 'stj-spider'
start_urls = ['https://ww2.stj.jus.br/processo/pesquisa/?aplicacao=processos.ea']
def parse(self, response):
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'browserName': 'mozilla',
'Connection': 'keep-alive',
'Referer': 'https://ww2.stj.jus.br/processo/pesquisa/?aplicacao=processos.ea',
}
yield scrapy.FormRequest.from_response(
response,
headers=headers,
formid='idForm',
formdata={'idNumeroOriginario': '1234'},
callback=self.after_search,
)
def after_search(self, response):
open_in_browser(response)
print response.body
我也尝试过请求,但无济于事。似乎有一百个隐藏的输入让它变得非常困难。
无论如何,感谢您的帮助。
最佳答案
我们只需要更改一行使其工作:
formdata={'idNumeroOriginario': '1234'},
看看您如何在这里指定 idNumeroOriginario
表单值。
问题是,idNumeroOriginario
是一个id
值,但是表单输入的name
值被用作表单请求参数名,改一下到:
formdata={'numeroOriginario': '1234'},
关于python - Scrapy 的 FormRequest 没有给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054233/