2016-12-20 19 views
1

私はウェブスクラップするのがとても新しいです。私はBeautifulSoupについて読んで、それを使ってみました。しかし、私は与えられたクラス名 "company-desc-and-sort-container"でテキストを抽出することができません。私はhtmlページからタイトルを抽出することさえできません。これは私が試したコードです:Pythonのhtmlページからテキストを抽出できません

from BeautifulSoup import BeautifulSoup 
import requests 

url= 'http://fortune.com/best-companies/'  
r = requests.get(url) 

soup = BeautifulSoup(r.text) 

#print soup.prettify()[0:1000] 
print soup.find_all("title") 

letters = soup.find_all("div", class_="company-desc-and-sort-container") 

私は、次のエラーを取得しています:

print soup.find_all("title") 
TypeError: 'NoneType' object is not callable 
+1

あなたの美しいバージョンは何ですか? – eLRuLL

答えて

1

あなたはもう維持するだけでなく、がないだけでなくこれ、BeautifulSoupバージョン3を使用していますfind_all()メソッドがあります。そして、ドット表記がfind()へのショートカットとして使用されているので、BeautifulSoupは、Noneという結果になる「find_all」タグ名を持つ要素を見つけようとします。 beautifulsoup4パッケージがインストールされているようにしてください

from bs4 import BeautifulSoup 

:で

from BeautifulSoup import BeautifulSoup 

BeautifulSoupバージョン4、置き換えるに

TypeError: 'NoneType' object is not callable

アップグレード:次に、それがになりNone("title")を実行します

pip install --upgrade beautifulsoup4 
0
soup.find_all("title") 

タイトルタグを見つけて「なし」を返していません。また、find_allメソッドは、何かを見つけて別のエラーが発生した場合にリストを返します。リストを印刷することはできません。単に "find"メソッドを使用してください。それは最初のタイトルタグを行います。

次に、HTMLページにタイトルタグがありますか?検索し、印刷しない場合のみ印刷します。

関連する問題