2017-04-08 14 views
1

私はいくつかのコンテンツのためにウェブページを掻き取る要求を使用します。
私はpythonリクエストはブラウザまたはurllibから別のWebページを返します

import requests 
requests.get('example.org') 

を使用する場合、私は私がurllibを使用してみましたが、それは本当に遅かった私がbroswerを使用するか、

import urllib.request 
urllib.request.urlopen('example.org') 

を使用しているとき、私が得るものから別のページを取得します。
比較テストでは、私はrequestsより50%遅かったです!

どのようにこれを解決しますか?

答えて

2

多くの調査の結果、サイトは、サイトの最初の訪問者にのみ添付されたヘッダーにクッキーを渡すことがわかりました。

ので、解決策はhead要求にクッキーを取得することで、その後、あなたのget要求

import requests 
# get the cookies with head(), this doesn't get the body so it's FAST 
cookies = requests.head('example.com') 
# send get request with the cookies 
result = requests.get('example.com', cookies=cookies) 

でそれらを再送信し、今ではurllibは+同じ結果:)

+0

よりも高速だそれとも、 '使用することができますセッション 'のインスタンス。 'CookieJar'で自動的にクッキーを管理します。 – Dashadower

+0

私はそれを試みましたが、私の場合、最初のリクエストのみでクッキーが送信されました。後続のリクエストで同じクッキーを再利用したくないので、クッキーをgetリクエストに渡しました。他のほとんどのケースで有効なあなたの提案 –

関連する問題