1. 程式人生 > >爬取任意兩個用戶在豆瓣上標記的想讀的圖書

爬取任意兩個用戶在豆瓣上標記的想讀的圖書

ID IT pan com 長度 ide urllib http 數據

爬蟲的步驟:將要爬取的目標用戶想讀的圖書的首頁的url存儲在元組中。通過urllib.request方法構造一個發送請求,在通過urllib.urlopen方法發出請求並取得響應(response)。通過response.read得到頁面html,然後在通過beautifulsoup將html解析成beautiful結構soup。通過soup中的一系列方法得到每本圖書的url存到set中,將此url和其余的信息存到一個dict中。

通過判斷在當前頁是否還有下一頁存在(通過頁面的標識尋找),如果存在就繼續遍歷,直至結束。然後通過set中的”與“運算符得到共同想讀的書的url,存儲在一個新的set中,如果此set的元素的長度為0,則說明兩人沒有共同想讀的圖書,如果不為0,則遍歷這些url,然後在dict中找到與之對應的圖書的具體信息。然後通過xlwt將圖書的信息寫在excel中保存。

在構造請求時遇到了發起請求後,服務器返回403。它表示服務器理解了客戶的請求,但拒絕處理它。解決的辦法是在請求的頭部添加refer,refer來自通過瀏覽器訪問目標頁面時,通過f12在瀏覽器中找到的。其目的是模擬通過瀏覽器訪問目標頁面來爬取數據。有時候在爬取頁面的信息時,需要暫停幾毫秒,爬的過於頻繁,會被服務器端監測到。

github地址:https://github.com/041240515lq/python_spider

爬取任意兩個用戶在豆瓣上標記的想讀的圖書