0

ここにあるこのコードを使用しています ( Python と BeautifulSoup を使用して Web ページからリンクを取得します) を使用して、Web サイトからすべてのリンクを抽出します。

import httplib2
from BeautifulSoup import BeautifulSoup, SoupStrainer

http = httplib2.Http()
status, response = http.request('http://www.bestwestern.com.au')

for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')):
    if link.has_attr('href'):
        print link['href']

このサイトhttp://www.bestwestern.com.au をテストとして使用しています。残念ながら、コードが一部のリンクを抽出していないことに気付きました。たとえば、このhttp://www.bestwestern.com.au/about-us/careers/です。どうしてか分かりません。ページのコードで、これが私が見つけたものです。

<li><a href="http://www.bestwestern.com.au/about-us/careers/">Careers</a></li>

通常、エクストラクタはそれを識別する必要があると思います。BeautifulSoup のドキュメントには次のように書かれています。入ってくるのを見ましたが、find_all() は [] を返すか、find() は None を返します。これは、Python の組み込み HTML パーサーによくあるもう 1 つの問題で、理解できないタグをスキップすることがあります。繰り返しになりますが、解決策は lxml または html5lib をインストールすることです。」それでhtml5libをインストールしました。しかし、私はまだ同じ行動をしています。

ご協力ありがとうございました

4

2 に答える 2