【发布时间】:2012-03-30 11:42:10
【问题描述】:
我一直在使用 HTMLParser 类在 Python 中开发一个基本的网络爬虫。我使用修改后的 handle_starttag 方法获取链接,如下所示:
def handle_starttag(self, tag, attrs):
if tag == 'a':
for (key, value) in attrs:
if key == 'href':
newUrl = urljoin(self.baseUrl, value)
self.links = self.links + [newUrl]
当我想找到页面上的每个链接时,这非常有效。现在我只想获取某些链接。
我将如何只获取<td class="title"> 和</td> 标签之间的链接,如下所示:
<td class="title"><a href="http://www.stackoverflow.com">StackOverflow</a><span class="comhead"> (arstechnica.com) </span></td>
【问题讨论】:
-
检查标签是否有一个类名为title的父级!
-
你如何推荐这样做?
-
你检查过 Python lxml 库吗?它可以非常有效地解析页面上的链接和其他元素。 lxml.de
-
不,我没有,我去看看。不过,必须有一种方法可以使用 HTMLParser 类。我似乎在任何地方都找不到有关 handle_starttag 方法的太多信息。
-
我会使用 beautifulsoup :) 你想让我在 BeautifulSoup 上发布解决方案吗?
标签: python parsing hyperlink web-crawler html-parsing