从href和文本中获取URL

时间:2013-07-09 22:38:27

标签: python regex python-2.7 beautifulsoup

我尝试过使用正则表达式但是四处阅读,并被引导到美丽的汤......

我有点想办法如何用汤来获取html标签中的网址,但是如何从html标签(href = *)和网页正文中获取网址?

另外,为了抓住标签中的标签,如何指定我只想要以http://,https:// ...开头的网址?

提前致谢!

1 个答案:

答案 0 :(得分:1)

首先看一下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")