表单发布到第二个网页时的 scrapy 表单填写

scrapy form-filling when form posts to a second web page

scrapy 的新手,想知道是否有人可以将我指向一个使用 scrapy 提交到 HTML 表单的示例项目,这些表单在表单的操作页面与 where 的地址不同的情况下具有隐藏字段表格本身被呈现。

在 Scrapy 中最简单的方法是什么?我可以看到您可以编写两个蜘蛛 - 第一个获取带有表单的 html 并挑选出所有隐藏字段,然后第二个使用带有隐藏字段的信息来提交表单。

我想知道是否有一个 1 步过程来代替(Scrapy 请求文档似乎假设它都在同一页上,当它说使用 FormRequest.from_response 将处理隐藏字段时)。如果是这样,有人能告诉我在哪里可以找到第一步过程的步骤吗?

FormRequest扩展了Request对象。因此,您可以使用 FormRequest.from_response 获得包含隐藏值的 formdata,如果需要,在之后更改 url

演示伪代码:

class ExampleSpider(scrapy.Spider):
    name = 'example.com'
    start_urls = ['http://www.example.com/FormPage.php']

    def parse(self, response):
        request = scrapy.FormRequest.from_response(
            response,
            callback=self.parse_response_from_Form
        )
        request.replace(url='http://www.other-site.com/')
        return request

    def parse_response_from_Form(self, response):
        # go on here...
        pass