Python字符串范围(解析HTML)

1 投票
5 回答
931 浏览
提问于 2025-04-16 20:43

在Python中,我复制了一网页,想要找出所有出现的 <a href=

我正在使用urllib2,下面是我的设置:

import urllib2
response = urllib2.urlopen("http://python.org")
html = response.read()

要完成这个任务,最好的方法是什么呢?我该如何从一个存储了整个网页的变量中选择一段字符串文本呢?

5 个回答

1

听起来你需要一个HTML解析器。可以看看Beautiful Soup这个工具。我不建议使用正则表达式,因为那样会变得非常复杂,而且容易出错。

3

这个任务肯定需要用到Beautiful Soup这个工具:

>>> from BeautifulSoup import BeautifulSoup
>>> import urllib2
>>> page = urllib2.urlopen('http://stackoverflow.com/')
>>> soup = BeautifulSoup(page)
>>> links = soup.html.body.findAll('a', limit=10)
>>> for i, link in enumerate(links):
...     print i, ':', link.text, ' -- ', link['href'] 
... 
0 : Stack Exchange  --  http://stackexchange.com
1 : log in  --  /users/login
2 : blog  --  http://blog.stackoverflow.com
3 : careers  --  http://careers.stackoverflow.com
4 : chat  --  http://chat.stackoverflow.com
5 : meta  --  http://meta.stackoverflow.com
6 : about  --  /about
7 : faq  --  /faq
8 : Stack Overflow  --  /
9 : Questions  --  /questions

首页上有很多链接;我把输出限制在前十个!

4

在Python中解析HTML时,我比较喜欢用BeautifulSoup这个工具。这是因为如果你想找网页中的链接,而不仅仅是简单地查找

撰写回答