【问题标题】:How would you use scrapy to select an option from a select tag on a site?您将如何使用 scrapy 从网站上的选择标签中选择一个选项?
【发布时间】:2014-12-22 05:35:44
【问题描述】:

我正在学习如何使用 Scrapy。我正在按照教程使用scrapy模拟用户登录,然后在成功登录后收集数据(下面的代码)。但是,如果它是登录过程的一部分,一个程序如何从下拉列表中选择某个选项?

class LoginSpider(BaseSpider):
    name = 'example.com'
    start_urls = ['http://www.example.com/users/login.php']

    def parse(self, response):
        return [FormRequest.from_response(response,
                    formdata={'username': 'john', 'password': 'secret'},
                    callback=self.after_login)]

    def after_login(self, response):
        # check login succeed before going on
        if "authentication failed" in response.body:
            self.log("Login failed", level=log.ERROR)
            return

        # continue scraping with authenticated session...

选择标签:

<select>

    <option>Value 1</option>
    <option>Value 2</option>
    <option>Value 3</option>

</select>

除了输入登录信息之外,我如何编程 scrapy 在下拉列表中选择值 1。

【问题讨论】:

  • scrapy 并没有什么神奇之处。打开浏览器开发者工具、网络选项卡,提交请求并查看下拉值在请求中的显示方式。希望对您有所帮助。

标签: python html web-scraping scrapy


【解决方案1】:

您可能需要将选项及其值作为 {Value,1}、{Value,2} 等表单数据中的键传递。

【讨论】:

  • 会不会是这样的:formdata = {'name_of_select_tag': 'optionvalue'} 另外,只要确认key始终是html代码中的name属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 2020-07-29
相关资源
最近更新 更多