如何使用easyhtmlparser从python文件获取所有链接?

时间:2013-07-03 07:46:30

标签: python html parsing

我正在尝试使用html解析器从页面获取所有链接和图像 http://easyhtmlparser.sourceforge.net/

fd = open('file.html', 'r')
data = fd.read()
fd.close()
html = Html()
dom = html.feed(data)
for ind in dom.sail():
    if ind.name == 'a':
        print ind.attr['ref']

2 个答案:

答案 0 :(得分:1)

好吧,我不是特别想阅读easyhtmlparser的文档,但是如果你愿意使用Beautiful Soup

from bs4 import BeautifulSoup
fd = open('file.html', 'r')
data = fd.read()
fd.close()
soup = BeautifulSoup(data)
for link in soup.find_all('a'):
    print(link.get('href')) #or do whatever with it

应该可行,但我还没有测试过。祝你好运!

编辑:现在我有。它有效。

编辑2:要查找图像,搜索所有图像标记等,找到src链接。我相信你可以在Beautiful Soup或easyhtmlparser docs中找到它们。

要下载并放入文件夹,

import urllib
urllib.urlretrieve(IMAGE_URL, path_to_folder/imagename)

或者你可以从urllib中读取,因为最后一切都只是一个字符串,而且读取比检索更简单。

答案 1 :(得分:0)

我会这样做。

from ehp import *

with open('file.html', 'r') as fd:
    data = fd.read()

html = Html()
dom = html.feed(data)

for ind in dom.sail():
    if ind.name == 'a':
        print ind.attr['href']
    elif ind.name == 'img':
        print ind.attr['src']