【问题标题】:Can I use scrapy to click on button that has no href but has onclick property?我可以使用scrapy点击没有href但有onclick属性的按钮吗?
【发布时间】:2021-09-28 18:05:45
【问题描述】:

我是 Scrapy 的新手,但遇到了问题。我正在尝试从使用此类按钮的网页中提取信息:

<a id="" href="#" ... onclick="function()..."

我一直在寻找示例,但所有示例都使用 href。有解决办法吗?我需要使用其他工具来完成这项工作吗?

谢谢

【问题讨论】:

    标签: python button scrapy onclick screen-scraping


    【解决方案1】:

    不,您不能使用scrapy 来执行此操作,但如果您想抓取这些类型的网站,则可以使用selenium。对于这些 javascript 页面来说,它是一个很棒的库。

    有关scrapy 为何不起作用以及为什么应该使用selenium 的更多详细信息,您可以访问这些链接。 This 与您的问题类似。 Selenium vs scrapy。您可以访问这里:Scraping Javascript Enabled Websites using Scrapy-Selenium

    【讨论】:

    • 问题是我正在尝试从 Selenium 迁移代码,因为它太慢了。但是该站点充满了js交互。我已经看到有一个名为 Splash 的库来处理 js。但是,我没有成功找到我想要的东西。谢谢你的回答:)
    • 我不知道splash 抱歉。我不能给你任何解释。我必须对此进行自己的研究,学习基础知识,然后才能写出任何进一步的解释。我现在不感兴趣。所以,我写了我在研究你的问题时所知道的和发现的。
    • 是的!别担心 :D 一旦我得到更多关于这个的信息,我会更新这个问题,希望有一个答案
    【解决方案2】:

    您不能“单击”按钮,但可以监视网络选项卡以查看单击时发送的请求。 以this page 为例。当您单击登录按钮时,将发送一个 POST 请求。您可以使用 scrapy 轻松发送 POST 请求。 这是一个代码sn-p:

    r = FormRequest.from_response(response, formdata={'username': 'd','password':'x'})
    yield(r)
    

    【讨论】:

    • 对不起,我以为我回答了你。这里的问题是它不是一个表单,它是一个简单的按钮(导航到站点中的另一个位置),当我按下它时,它似乎在网络选项卡中没有获取/发布响应。但是我得出的结论是,最终,我将构建我已经拥有的相同工具,只是在数据提取方面使用 Scrapy 效率更高,这不是问题,也不是最慢的部分代码。非常感谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多