如何用Python获取HTML文件?

19 投票
8 回答
79663 浏览
提问于 2025-04-16 08:47

我对Python不是很熟悉。现在我想从这个页面提取艺术家的名字(先从这个开始 :)):http://www.infolanka.com/miyuru_gee/art/art.html

我该怎么获取这个页面的内容呢?我主要有两个问题:我应该用什么函数,以及怎么把那些没用的链接过滤掉?

8 个回答

6
  1. 使用 urllib2 来获取网页。

  2. 使用 BeautifulSoup 来解析HTML(网页内容),然后提取你想要的信息!

7

我觉得“eyquem”的方法也是我的选择,不过我更喜欢用httplib2,而不是urlliburllib2对于这个工作来说太底层了。

import httplib2, re
pat = re.compile('<DT><a href="[^"]+">(.+?)</a>') http = httplib2.Http() headers, body = http.request("http://www.infolanka.com/miyuru_gee/art/art.html")
li = pat.findall(body) print li
24

这是一个使用urlib和lxml.html的示例:

import urllib
from lxml import html

url = "http://www.infolanka.com/miyuru_gee/art/art.html"
page = html.fromstring(urllib.urlopen(url).read())

for link in page.xpath("//a"):
    print "Name", link.text, "URL", link.get("href")

output >>
    [('Aathma Liyanage', 'athma.html'),
     ('Abewardhana Balasuriya', 'abewardhana.html'),
     ('Aelian Thilakeratne', 'aelian_thi.html'),
     ('Ahamed Mohideen', 'ahamed.html'),
    ]

撰写回答