如何从该特定页面提取文本? bs4 + python

时间:2018-08-17 12:33:13

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

我有以下页面:

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

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

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

1)我是否应该使用一种程序语言,使我能够从页面中读取文本(我应该使用哪一种?我要寻找什么?)然后进行操作?

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


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

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

关于,

编辑: 我当时正在考虑使用一种面向对象的方法来分离每个灵缇,并研究每个数字。也许用C#更好?

2 个答案:

答案 0 :(得分:0)

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

    ,其中open('page_text.txt')为f:     lines = f.readlines()

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

答案 1 :(得分:0)

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

但是,如果您不需要那么频繁地进行操作,则可以从常规浏览器中获取信息。例如,在Firefox中:

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

这使您可以对当前DOM(由JavaScript动态构造)进行序列化,而不是原始获取的文档。