【问题标题】:Dynamic web page scraping in python [closed]python中的动态网页抓取[关闭]
【发布时间】:2015-06-11 18:16:43
【问题描述】:

如何在 Python 中抓取动态上传的网页?
在Python中可能吗?

就像使用 Beautifulsoup 一样,我们只能抓取网页的静态内容。
但我想抓取一个动态上传的网页。

【问题讨论】:

  • 有时是,有时不是。这取决于网站。如果您可以在帖子中添加更多详细信息,我们或许可以提供指点。
  • 谢谢奥利弗。我想从afl.com.au/afl/stats/player-ratings/overall-standings 链接中抓取数据以获取整体球员排名。请您指导我如何在 python 中抓取..?
  • @Oliver:想得到每个球员的详细资料,如果你点击Gary Ablett得到一些数据。

标签: python beautifulsoup urllib2


【解决方案1】:

动态页面使用 JavaScript 来更改页面的内容,只需按下按钮并... 您可以使用名为 selenium 的 python 库来处理 JavaScript,这样您的 网络驱动程序将单击一个按钮,然后……如果您愿意,可以为您服务;这样你就可以用漂亮的汤刮掉那一页了。 注意,漂亮的汤只能抓取当前页面上显示的内容。 这是你每次都会做的:

  1. 用 selenium 和你的浏览器网络驱动打开 URL(你可以搜索下载)
  2. 查找按钮、选项卡或任何使页面动态并命令点击的东西 硒。
  3. 用漂亮的肥皂抓取页面源代码并抓取您需要的信息。

【讨论】:

    【解决方案2】:

    您可以使用包mechanize 来执行您在浏览器中执行的大多数操作。

    有状态的程序化网页浏览,在 Andy Lester 的 Perl 模块 WWW::Mechanize 之后。

    mechanize.Browser 实现了 urllib2.OpenerDirector 接口。浏览器对象具有状态,包括导航历史、HTML 表单状态、cookie 等。浏览器对象处理的功能集和 URL 方案是可配置的。该库还提供了一个与 urllib2 大部分兼容的 API:如果您在任何地方将“urllib2”替换为“mechanize”,您的 urllib2 程序可能仍然可以工作。

    功能包括:ftp:、http: 和文件:URL 方案、浏览器历史记录、超链接和 HTML 表单支持、HTTP cookie、HTTP-EQUIV 和刷新、Referer [sic] 标头、robots.txt、重定向、代理和基本和摘要 HTTP 身份验证。

    【讨论】:

      【解决方案3】:

      我会推荐你​​去selenium。它所做的只是打开一个浏览器,并完全按照真实用户的方式进行操作。您可以单击按钮并做任何真人在网站上可以做的事情。一个简单的谷歌搜索会给你很多教程。我会明确添加文档链接,因为谁甚至会阅读它们:p

      【讨论】:

        【解决方案4】:

        您可以仅使用 BeautifulSoup 和 Requests 库来完成此操作。您要做的是对网站正在进行的 API 调用进行反向工程。这可以通过检查开发人员设置并转到网络选项卡来完成。谢谢,希望对你有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-21
          • 2020-05-24
          • 2021-05-07
          • 2020-06-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多