2016-06-24 12 views
0

iはBeautifulSoupを学んだし、私はこれは、ページのHTMLコードを印刷し、このread()関数をPythonで 'instance'とバインドできますか?

from bs4 import BeautifulSoup 
import urllib2 

url = "https://en.wikipedia.org/wiki/Katy_Perry" 
open_url = urllib2.urlopen(url) 
read = open_url.read() 
print(read) 

に遭遇しました。しかし、ここでread()はどのように使うことができますか?そのFileIO関数であり、ファイルオブジェクトと共に使用する必要があります。変数 "open_url"はここではファイルオブジェクトではありません。

print(type(open_url)) 

出力:

<type 'instance'> 

明らかに "open_url" ファイルオブジェクトではありません、だから何が読みバインドすることが可能となった() "open_url" へ?

+0

可能性のある重複した[古いスタイルとPythonの新スタイルクラスの違いは何ですか?](http://stackoverflow.com/questions/54867/what-is-the-difference –

+0

'open'はオブジェクトのインスタンスです。つまり、オブジェクトにバインドされたほとんどすべて(属性とメソッド)を持つことができます。注: 'open()'は組み込み関数なので、変数の名前を変更してください。 – Cyrbil

答えて

0

あなたは両方open_urlを印刷する場合は、fp = socket._fileobject ..

<addinfourl at 139707791457312 whose fp = <socket._fileobject object at 0x7f104303bd50>> 

だからあなたはファイルオブジェクトが実際にあなたがopen_url.fpにアクセスできるsocket._fileobjectで見ることがわかります:あなたが最初のを削除した場合

<socket._fileobject object at 0x7f104303bd50> 

ソケットオブジェクトにアクセスして.readと直接呼び出すと、と呼ぶとどうなりますかなど..:の

open_url.fp.read() 
関連する問題