我正在将一些web抓取代码从R转换为Python(我不能让geckodriver使用R,但它使用Python)。无论如何,我试图理解如何用Python解析和读取HTML表。背景知识,这是我的R代码:doc
WebElem
我将把HTML页面解析为doc对象。然后我从doc[[1]]开始,在更高的数字中移动,直到看到所需的数据。在这个例子中,我看到了我想要的数据。然后我将读取该HTML表并将其分配给WebElem对象。最后,我会把它变成一个数据帧,然后用它来播放。
所以我在Python中做的是:html = None
doc = None
html = driver.page_source
doc = BeautifulSoup(html)
然后我开始玩doc.get_text,但我真的不知道如何获得我想看到的数据。我想看到的数据就像一个10x10的矩阵。当我使用R时,我只需要使用doc[[7]],这个矩阵几乎是一个完美的结构,我可以将它转换为一个数据帧。但是,我似乎不能用Python来实现这一点。任何建议都将不胜感激。
更新:
我已经能够使用Python获得所需的数据——我在这篇博客中使用Python创建了一个数据框架:Python Web-Scraping。这是我们在那篇博客中抓取的网站:Most Popular Dog Breeds。在那篇博客文章中,您必须遍历元素,创建一个dict,循环遍历表的每一行并将数据存储在每一列中,然后才能创建一个数据框。
对于R,我只需要编写以下代码:
doc
df
有了它,我有了一个非常好的数据框,只需要调整列名和数据类型就可以了——这段代码如下所示:
NULL.V1 NULL.V2 NULL.V3 NULL.V4
1 BREED 2015 2014 2013
2 Retrievers (Labrador) 1 1 1
3 German Shepherd Dogs 2 2 2
4 Retrievers (Golden) 3 3 3
5 Bulldogs 4 4 5
6 Beagles 5 5 4
7 French Bulldogs 6 9 11
8 Yorkshire Terriers 7 6 6
9 Poodles 8 7 8
10 Rottweilers 9 10 9
Python中是否没有什么东西可以使这个过程简单一点,或者这只是R中的简单一点,因为R是为数据帧构建的(至少在我看来是这样的,但我可能错了)?