1

私は新しいメンバーです 私の英語について申し訳ありませんが、それは私の母国語ではありません. HTML ページ (http://www.kernel.org/pub/linux/kernel/v3.0/) から特定の URL を抽出する Python プログラムを作成します。そのページに関するすべてのリンクをシェルに出力できましたが、linux-3.6.7.ta​​r.bz2 などの特定の URL を抽出する方法がわかりません。どうやってやるの?

別の質問をさせていただきます: 3.2、3.3、3.6 などのカーネルを指定するよりも、PC にダウンロードするカーネルをユーザーに選択してもらいたいのですが、どうすればそれを作成できますか? 多分正規表現で?

Ps: urllib2、HTMLParser、BeautifulSoup、Re をインポートしました。

4

1 に答える 1

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()関数を使用します...

于 2012-11-24T11:35:13.620 に答える