gpt4 book ai didi

javascript - 使用scrapy,如何抓取带有onclick属性的复选框的页面?

转载 作者:行者123 更新时间:2023-12-02 18:40:08 25 4
gpt4 key购买 nike

我正在使用 Scrapy 从网页中抓取一些数据。该页面有一个包含多个复选框和下拉菜单的表单,需要选择所有这些复选框才能生成数据表。所有复选框都具有调用 javascript 代码的 onClick 属性,并且它们处于层次结构级别,即有 5 个主复选框,每个复选框包含 7 个作为子类别的复选框,依此类推。复选框具有 4 级树形结构。这是最低级别(叶)复选框之一:

<input type="checkbox" name="mid" value="1043" id="bd_1" onclick="setGroupCheck(this)">

javascript 方法 setGroupCheck() 定义在页面的 head 标记中。

我尝试像这样提交表单:

FormRequest("url", method='POST', formdata={'mid':'1043','Ins':'a'}, callback=self.parseInfoPage)

但它给了我错误:500内部服务器错误。

我该如何解决这个问题?

最佳答案

您收到的错误是在服务器上,而不是在您的 FormRequest 中。如果你想使用 Scrapy,你可能对此无能为力。如果您需要从 Python 与 JavaScript 进行广泛的交互,那么您可能需要使用替代的抓取方法。

我最喜欢的是Selenium使用PhantomJS作为司机,因为它是 headless 的。您可以在这些链接中下载并安装以下说明。然后,您可以使用以下命令在 Python 中启动 Web 驱动程序:

from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get(url)

我知道这个答案可能看起来不太令人满意,因为它不能解决您使用 Scrapy 的问题,但是如果 JavaScript 变得复杂,那么在不驱动浏览器的情况下从 Python 与 JavaScript 交互通常会很困难或不可能。您页面上的 JavaScript 听起来很复杂。如果您添加指向您正在抓取的页面的链接,我可以提供更多建议,但您问题的答案实际上取决于页面。

关于javascript - 使用scrapy,如何抓取带有onclick属性的复选框的页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16921607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com