在HTML中查找特定网址

时间:2012-11-24 11:16:28

标签: regex parsing beautifulsoup urllib2 python-2.x

我是新成员,对我的英语感到抱歉,但这不是我的第一语言。 我会创建一个python程序,从html页面中提取特定的URL(http://www.kernel.org/pub/linux/kernel/v3.0/)。我能够在我的shell上打印有关该页面的所有链接,但我不知道如何提取特定的URL,例如linux-3.6.7.ta​​r.bz2。我怎么能这样做?

我会问你另一个问题:我希望用户选择在你的电脑上下载内核,而不是指定内核,例如3.2,3.3,3.6等等。我怎样才能做到这一点? 也许用正则表达式?

Ps:我导入了urllib2,HTMLParser,BeautifulSoup和Re。

1 个答案:

答案 0 :(得分:0)

from urllib2 import Request, urlopen
from BeautifulSoup import BeautifulSoup
req = Request('http://www.kernel.org/pub/linux/kernel/v3.0/')
response = urlopen(req)
content = response.readlines()
soup = BeautifulSoup(''.join(content))
for link in soup.findAll('a', href=True):
    if ('3.6.7.tar.gz' in link.string):
        print link

使用...

>>> from urllib2 import Request, urlopen
>>> from BeautifulSoup import BeautifulSoup
>>> req = Request('http://www.kernel.org/pub/linux/kernel/v3.0/')
>>> response = urlopen(req)
>>> content = response.readlines()
>>> soup = BeautifulSoup(''.join(content))
>>> for link in soup.findAll('a', href=True):
...     if ('3.6.7.tar.gz' in link.string):
...         print link
...
<a href="linux-3.6.7.tar.gz">linux-3.6.7.tar.gz</a>
>>>

如果要自定义搜索用户输入,请使用python的raw_input()函数...