【问题标题】:How to extract text from this specific page ? Unable to do so with bs4+python如何从此特定页面中提取文本?使用 bs4+python 无法做到这一点
【发布时间】:2018-08-17 12:33:13
【问题描述】:

我有以下页面:

http://greyhoundbet.racingpost.com/#card/race_id=1632746&r_date=2018-08-17&tab=form

它包含一系列以“表格”形式组织的信息。我需要“提取”该信息(行和列)以稍后处理信息。

知道我是新手,我尝试用 bs4 和 python 来做,但没有成功。你会推荐什么?

1) 我是否应该使用一种程序语言来读取页面上的文本(我应该使用哪个?我要寻找什么?)然后对其进行操作?

2)我可以手动获取文本(ctrl+c)并以某种方式将其发送到 python 吗?


您将如何以最简单的方式从页面获取信息,以便以后使用数据?

谢谢大家,如果这是一个愚蠢的问题,我很抱歉。过去一周我一直在为此苦苦挣扎。

问候, P.

编辑: 我正在考虑使用面向对象的方法来分离每只灰狗并研究每个数字。用 C# 做可能更好?

【问题讨论】:

  • 为了解析,你必须使用 selenium,因为所有数据都是从 javascript 加载的
  • 谢谢,utks009。我去看看。

标签: python parsing web-scraping beautifulsoup text-parsing


【解决方案1】:
  1. 我建议使用带有 Python 绑定 https://selenium-python.readthedocs.io/ 的 Selenium 或基于 phantomjs 的 CasperJS (http://casperjs.org/)。第二个是用 Javascript 编写的。
  2. 创建一个文本文件并粘贴复制的文本。然后用 python 读取文件:

    使用 open('page_text.txt') 作为 f: 行 = f.readlines()

你不能用 bs4 抓取页面。您需要一个“无头浏览器”,一种可以加载动态网页(如 Selenium 等)的工具

【讨论】:

    【解决方案2】:

    如果您需要重复执行此操作,那么您可能应该使用无头(可驱动)浏览器,正如其他答案所建议的那样。

    但是,如果您不需要经常这样做,您可以从普通浏览器获取信息。例如,在 Firefox 中:

    Right Click -> Select All
    Right Click -> View Selection Source
    File -> Save Page As...
    

    这为您提供了当前 DOM(由 JavaScript 动态构建)的序列化,而不是原始获取的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多