2016-10-23 8 views
-1

Ich versuche, ein Python-Skript zu erstellen, das zu einer Webseite geht und prüfen, ob es ein Div mit einer angegebenen ID gibt und wenn nicht, versucht es erneut zu löschen gegebenes Cookie.Set-Cookie in BeautifulSoup Python-Web-Scraper

Bisher dies ist mein Code:

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) 

Was ich frage ist für: Wie lösche ich das Cookie? Oder ich muss es nicht löschen, weil BeautifulSoup die Anfrage mit einer anderen Instanz wiederholt?

Ist es auch möglich, Dinge wie Header, User Agent usw. mit dieser Methode zu setzen? Wenn das so ist, wie?

Antwort

0

Sie müssen den Cookie hier nicht löschen. Jedes Mal, wenn Sie die URL mit der Methode urlopen() anfordern, wird eine neue Kopie der Seite angefordert. Wenn Sie jedoch ein Cookie speichern müssen, empfehle ich die Python requests Bibliothek oder Mechanize, die Ihnen beide ermöglichen, Browsersitzungen zu speichern.

Es ist auch möglich, dem Code, den Sie haben, Kopfzeilen und einen Benutzeragenten hinzuzufügen.

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)