【发布时间】:2013-07-07 17:21:24
【问题描述】:
我尝试过使用正则表达式,但仔细阅读并被引导到美丽的汤...
我有点想通了如何用汤在 html 标签中获取 url,但是我如何从 html 标签 (href=*) 和页面正文中获取 url?
另外为了抓取标签中的那些,我如何指定我只想要以 http://、https://... 开头的 url?
提前致谢!
【问题讨论】:
标签: python regex python-2.7 beautifulsoup
我尝试过使用正则表达式,但仔细阅读并被引导到美丽的汤...
我有点想通了如何用汤在 html 标签中获取 url,但是我如何从 html 标签 (href=*) 和页面正文中获取 url?
另外为了抓取标签中的那些,我如何指定我只想要以 http://、https://... 开头的 url?
提前致谢!
【问题讨论】:
标签: python regex python-2.7 beautifulsoup
先看parsing-html-in-python-lxml-or-beautifulsoup。我读了它,从来没有看过汤。我猜是因为我发现 lxml 很容易。我相信有不同的方法可以做你所问的,也许有更简单的方法。但我会展示我使用的内容。
在 lxml 中,您可以使用 XPath,这就像对 XML/HTML 使用正则表达式一样。下面的代码将找到所有具有“http”属性的“a”标签,并打印所有以 http 开头的链接。这应该可以帮助您开始解析。
from lxml.html import etree
tree = etree.parse("my.html", etree.HTMLParser())
root = tree.getroot()
links = root.findall('*//a[@href]')
foreach link in links:
if link.get("http").startswith("http"):
print link.get("http")
【讨论】: