1

別の Web ページから大学とその Web サイトのリストを取得しようとしています。

必要な行ごとに HTML を表示するために入力を取得しましたが、テキストをさらにフォーマットしようとしています。大学名とその大学へのリンクのみを表示したい。何か案は?

これが私のコードです:

url = "http://www.arizona.edu/colleges"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
universities = soup.findAll('span', {'class' : 'field-content'})
for eachuniversity in universities:
   print eachuniversity

そして、これが私が得るものの例ですeachuniversity:

<div class="views-field-title">
  <span class="field-content">
    <a href="/colleges/college-agriculture-life-sciences">
    <h3>College of Agriculture &amp; Life Sciences</h3>
    </a>
  </span>
</div>
4

1 に答える 1

4

以下は、あなたが探しているものを取得します。これを行うために使用される情報は、 BeautifulSoup のドキュメント(バージョン 4 ドキュメント)で簡単にアクセスできます。

for uni in universities:
    link = uni.find("a")
    college_name = link.text
    web_page = link["href"]

最初のユニ(あなたの例)の場合:

>>> print web_page
"/colleges/college-agriculture-life-sciences"
>>> print college_name
College of Agriculture &amp; Life Sciences

相対/絶対リンクと特殊な HTML 文字の処理は演習として残します。


これがどのように機能するか

あなたの最近の質問から、uniオブジェクトからタグを抽出するのに問題があると思われます。変数universitiesTagオブジェクトのコレクションであり、それぞれがその子にアクセスするために使用できる辞書のようなオブジェクトです。「解析ツリーのナビゲート」を読んで、BeautifulSoup で解析がどのように機能するかをよりよく理解してください。

于 2012-08-19T06:26:13.090 に答える