1

urllib2 と beautifulsoup で Web をクロールしようとしています。しかし、私のコードは次のようないくつかのリンクでメモリ不足になりました:

http://downloads.graboidvideo.com/download_filter.php?file=GraboidVideoSetup.pkg&platform=Mac

動画のダウンロードリンクです。urllib2.urlopen() を使用すると、ビデオがダウンロードされますが、これは私が望んでいるものではありません。URLのhtmlのみをダウンロードする方法はありますか? URLがビデオファイルまたは他のファイルを参照している場合、基本的にスキップしたいのですが、その方法がわかりません。

私のコードは次のとおりです。

toy_url=http://downloads.graboidvideo.com/download_filter.php?file=GraboidVideoSetup.pkg&platform=Mac
headers = {'USER-Agent':'crawltaosof'}
req = urllib2.Request(url, None,headers)
page = urllib2.urlopen(req,timeout=0.51).read()
4

1 に答える 1

5

メソッドを使用する前に、応答ヘッダーを確認することを検討してくださいread()。ここに例があります。

>>> import urllib2
>>>
>>> request = urllib2.Request('http://downloads.graboidvideo.com/download_filter
.php?file=GraboidVideoSetup.pkg&platform=Mac')
>>> response = urllib2.urlopen(request)
>>>
>>> print response.info().getheader('Content-Type')
application/octet-stream
>>>
>>>
>>> request = urllib2.Request('http://www.yahoo.com')
>>> response = urllib2.urlopen(request)
>>>
>>> print response.info().getheader('Content-Type')
text/html;charset=utf-8

最終的にContent-Typeは、応答ヘッダーでテストし、それを使用してtext\html、Web クローラーを介して URL を実行する前に、それがタイプであることを確認する必要があります。他の種類について知りたい場合は、インターネット メディアの種類に関するこのウィキペディアの記事を参照してくださいtext

于 2012-11-14T03:49:48.313 に答える