我正在python中构建一个应用程序,我需要在一个网页中获取所有链接的URL.我已经有一个函数使用urllib从web下载html文件,并将其转换为带有readlines()的字符串列表.
目前我有这个代码使用正则表达式(我不是很擅长)来搜索每一行中的链接:
for line in lines: result = re.match ('/href="(.*)"/iU', line) print result
这不起作用,因为它只为文件中的每一行打印"无",但我确信至少在我打开的文件上有3个链接.
有人可以给我一个暗示吗?
提前致谢
美丽的汤几乎可以做到这一点:
from BeautifulSoup import BeautifulSoup as soup html = soup('qweasd') print [tag.attrMap['href'] for tag in html.findAll('a', {'href': True})]
BeautifulSoup的另一个替代品是lxml(http://lxml.de/);
import lxml.html links = lxml.html.parse("http://stackoverflow.com/").xpath("//a/@href") for link in links: print link