表分析如何在Python中工作? 其他美丽的汤还有一个简单的方法吗?

我想了解如何使用美丽的汤来提取网页上的表中的特定列下的内容的href链接。 例如,请考虑链接: http : //en.wikipedia.org/wiki/List_of_Telugu_films_of_2015 。

在这个页面上,类wikitable的表格有一个列标题,我需要提取列标题下每个值后面的href链接,并把它们放在一个excel表格中。 什么是最好的方法来做到这一点? 我在理解美丽的汤表parsing文档方面有点困难。

你并不需要从字面上浏览树,你可以简单地看看是什么标识这些行

就像在这个例子中,你正在寻找的urls位于class="wikitable"表格中,在表格中它们驻留在一个带有align=center的td标签中,现在我们有一个对于链接有一些独特的标识,提取它们。

然而,你应该考虑到可能存在多个表class="wikitable"和td标签align=center ,如果你想要第一个或第二个表,这取决于你的select,你将不得不添加额外的filter。

代码应该像这样从这些表中提取所有链接:

 import urllib2 from bs4 import BeautifulSoup, SoupStrainer content = urllib2.urlopen("http://en.wikipedia.org/wiki/List_of_Telugu_films_of_2015").read() filter_tag = SoupStrainer("table", {"class":"wikitable"}) soup = BeautifulSoup(content, parse_only=filter_tag) links=[] for sp in soup.find_all(align="center"): a_tag = sp('a') if a_tag: links.append(a_tag[0].get('href')) 

还有一件事要注意,注意到使用了SoupStrainer,它用来指定一个filter来读取你想要处理的内容,它有助于加快进程,不要在这一行使用parse_only参数:
soup = BeautifulSoup(content, parse_only=filter_tag)
并注意不同之处。 (我注意到,因为我的电脑不是那么强大)

Interesting Posts