2016-10-23 62 views
-1

我正在嘗試創建一個轉到網頁的python腳本,並檢查是否存在帶有指定id的div,如果沒有,它會再次嘗試刪除給cookie。在BeautifulSoup Python web scraper中設置cookie

到目前爲止,這是我的代碼:

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) 

就是我要問的是:如何刪除cookie?或者我不需要刪除它,因爲BeautifulSoup會使用不同的實例重試請求?

另外,是否有可能使用此方法設置標題,用戶代理等東西?如果是這樣,怎麼樣?

回答

0

您不需要在這裏刪除cookie。每次您使用urlopen()方法請求url時,都會請求該頁面的新副本。但是,如果您確實需要保存cookie,我建議使用python requests庫或機械手,這樣可以讓您保存瀏覽器會話。

也可以將頭文件和用戶代理添加到您擁有的代碼中。

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)