2016-10-23 6 views
-1

ウェブページに移動し、指定されたIDを持つdivがあるかどうかを確認するPythonスクリプトを作成しようとしていますが、そうでない場合は、与えられたクッキー。BeautifulSoup Pythonウェブスクレイパーでクッキーを設定する

はこれまでのところ、これは私のコードです:

import urllib2 
from BeautifulSoup import BeautifulSoup 
import time 

url = 'http://google.com' 
cookie = 'hello' 

while True: 
    page = urllib2.urlopen(url).read() 
    soup = BeautifulSoup(page) 
    soup.prettify() 
    if soup.find(id='hello'): 
     print "Found!" 
     break 
    else: 
     #DELETE THE GIVEN COOKIE AND TRY AGAIN 
    time.sleep(1) 

何があるために求めている:どのように私はクッキーを削除しますか?それとも、BeautifulSoupが別のインスタンスを使用してリクエストを再試行するため、削除する必要はありませんか?

また、この方法でヘッダーやユーザーエージェントなどを設定することは可能ですか?もしそうなら、どうですか?

答えて

0

ここでクッキーを削除する必要はありません。 urlopen()メソッドでurlをリクエストするたびに、新しいページのコピーが要求されます。しかし、クッキーを保存する必要がある場合は、Python requestsライブラリまたはmechanizeをお勧めします。どちらもブラウザセッションを保存できます。

ヘッダーとユーザーエージェントをコードに追加することもできます。

import urllib2 
from BeautifulSoup import BeautifulSoup 
import time 

url = 'http://google.com' 

opener = urllib2.build_opener() 
opener.addheaders = [('User-agent', 'Mozilla/5.0')] 

while True: 
    page = opener.open(url).read() 
    soup = BeautifulSoup(page) 
    soup.prettify() 
    if soup.find(id='hello'): 
     print "Found!" 
     break 
    else: 
     time.sleep(1) 
関連する問題