python - Scrapy 的 FormRequest 没有给出结果

标签 python request scrapy

我正在使用 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/

相关文章:

python - 通过对象列表中的每个元素索引查找最小值

java - 在http请求字符串url中添加文本

javascript - 使用scrapy抓取包含 anchor 标记<a href = "#">的网页

python - 为什么我用这个 scrapy 爬虫没有得到任何结果?

scrapy - 在Scrapy中组合蜘蛛

python - Matplotlib PDF 后端慢?

python - 在 Python 中以有效的方式清理数据

python - Pylons REPL 在运行的 Web 服务器中重新评估代码

c# - 如何检测 Http 请求的结束?

java - 解码 PKCS-7 请求