【问题标题】:What tools are required to scrape, click, and analyze data from a website从网站上抓取、点击和分析数据需要哪些工具
【发布时间】:2016-02-12 02:36:10
【问题描述】:

好的,我只想知道我最好的行动计划是什么,我需要什么工具/框架:

1.登录网页

2.导航到需要点击按钮然后填写文本框进行搜索的所需页面

3-4循环中

3.从页面中抓取html并存储在本地txt文件中

4.分析文本文件,如果字符串符合某些条件,通过电子邮件通知我找到了匹配项

我的过程是使用 scrapy 获取数据,但我不确定如何导航页面并提供输入(例如登录凭据和按钮导航),这让我想使用 selenium(在工作中使用它,所以我'我对它很满意)但我不确定这是否是最好的方法。

感谢您的指导!

【问题讨论】:

    标签: html python-2.7 selenium scrapy


    【解决方案1】:

    很多时候,“单击按钮”和“填写表单”并不要求您实际执行任何这些操作。它只是浏览器用来从您那里获取数据,然后通过 POST 将其提交给服务器的方法。您实际上可以直接执行这些 POST 请求。

    对于 Javascript,同样的事情正在发生,它只是提交 POST 而不重新加载页面,并用新数据修改当前页面。

    在大多数情况下,您只需弄清楚 POST 是在哪里进行的,以及您需要填写哪些字段,然后自己完成。一些好的起点是Using FormRequest.from_response() to simulate a user login,而这个SO Scrapy/Ajax question

    这将允许您简化并仅使用 Scrapy,而不是使用 Selenium 获取整个页面内容,并将数据以文件的形式传递给 Scrapy,所有这些都会显着变慢。

    顺便说一句,如果您确实想使用 Selenium,并且想要在之后解析数据,请不要使用 Scrapy。它是一个成熟的框架,不适合仅解析 HTML。相反,使用它的解析库,提到parseleLRuLL,或者使用BeautifulSoup4`(文档和主页是here

    【讨论】:

      【解决方案2】:

      当然,我认为 Selenium 是这种情况下的最佳选择之一。您也可以尝试使用 scrapy 复制登录请求,但您需要知道使用 scrapy 正确抓取所需的请求、标头和 cookie(因为 scrapy 不提供像 Selenium 这样的浏览器自动化)。

      对于解析正文,当然scrapy 是最好的选择,但您也可以只使用parsel 来仅使用选择器。

      要发送电子邮件,您应该配置一个 smtp 客户端,this article 解释得更好。

      【讨论】:

      • 谢谢,我想我会走 selenium 路线,然后我想我会下载 html 文件,然后使用一些 java 或 python 解析它以获得我想要的数据。我只使用过 java 的 selenium 版本,但我想在 python 中做这个项目,学习曲线很大吗?
      • 我完全不同意“scrapy 是解析 HTML 的最佳选择”。您应该使用解析库,而不是完整的爬虫框架。
      • 是的,这就是我推荐parsel 或任何其他解析库的原因。 @user3470987 这个link 可以给你一个使用 selenium 和 scrapy 的简单例子
      猜你喜欢
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2020-07-07
      • 1970-01-01
      相关资源
      最近更新 更多