2016-11-12 11 views
0

私はウェブスクレイピングの分野では絶対に初心者ですが、今はウェブページから見えるテキストを抽出したいと思います。上記のコードに表示されているテキストを掻き集める

import urllib2 
from bs4 import BeautifulSoup 

url = "http://www.espncricinfo.com/" 
web_page = urllib2.urlopen(url) 

soup = BeautifulSoup(url , "lxml") 
print (soup.prettify()) 

、私は次のような結果を得る:私は、コードのオンラインの作品を見つけとにかく、私はより具体的な結果を得ることができ、どのような間違ったコードで起こっている

/usr/local/lib/python2.7/site-packages/bs4/__init__.py:282: UserWarning: "http://www.espncricinfo.com/" looks like a URL. Beautiful Soup is not an HTTP client. You should probably use an HTTP client like requests to get the document behind the URL, and feed that document to Beautiful Soup. 
    ' that document to Beautiful Soup.' % decoded_markup 
<html> 
<body> 
    <p> 
    http://www.espncricinfo.com/ 
    </p> 
</body> 
</html> 

を。無知になって申し訳ありません。

+0

に保存されていますか?私たちはあなたのために少しだけわかりやすい形式で情報を逆流させるためにここにはいません – Natecat

+0

**表示可能なテキスト**を抽出することは何を意味しますか?Webサイトの例と抽出できるテキストの種類を教えてください。 –

+0

申し訳ありませんこれは基本的に、私がおそらくHTTPクライアントを使用すべきURLを美しいスープに提供したというユーザの警告です。美しいスープは、URLの背後にあるドキュメントのみを受け入れることになります。 –

答えて

1

は、HTML文書を渡してみてくださいに飾り立てるのURLません:

import urllib2 
from bs4 import BeautifulSoup 

url = "http://www.espncricinfo.com/" 
web_page = urllib2.urlopen(url) 

soup = BeautifulSoup(web_page , 'html.parser') 
print (soup.prettify().encode('utf-8')) 
+0

私は 'ascii'コーデックが文字エラーをエンコードできないようになっています。 –

+0

ちょうどこのコードをmacとlinuxの両方にペーストしてコピーし、応答を得ました。どのラインがエラーを出すのですか? –

+1

ありがとう! prettify関数で与えられた出力を明示的にエンコードすると、上記のコードが実行されます。 –

1
soup = BeautifulSoup(web_page, "lxml") 

あなたはBeautifulSoupではなく、URLにファイルのようなオブジェクトを渡す必要があります。

urlがurllib2.urlopen(url)によって処理し、あなたは多分エラーを読み取ることができweb_page

関連する問題