通過requests、BeautifulSoup下載四虎網站上的所有美女圖片

通過requests、BeautifulSoup下載四虎網站上的所有美女圖片

本博客只在技術層面進行研究,與其他原因無關。希望不要引起各位看客遐想。

四虎網站是一個成人網站,裡面有很多的資源可以進行下載,本文將把網站的圖片給下載下來。

一、獲取圖片網頁的信息

首先是獲取圖片網頁的鏈接 ,我們在圖片的主頁面上有各個圖片的鏈接和標題,我們可以爬取下載再進行分析

我們首先通過requests.get()的方法把網頁給爬取下來,這時利用requests.get()的content屬性可以把網頁的源代碼給顯示出來,也可以用text來顯示,但content的一個優勢就是返回的是二進位數據,而text返回的是unicode型數據。簡單來說,就是content不容易亂碼,而且也可以獲取圖片和文件。

html=requests.get(firsturl) #soup=BeautifulSoup(html.text) soup = BeautifulSoup(html.content) try : topurl = soup.find(attrs={class: next pagegbk})["href"] except TypeError: return 0

我們發現網頁的最後一頁的下一頁沒有,返回的是一個空值,所以我們直接將最後一個網頁作為頁面的異常值拋出.接下來我們直接利用BeautifulSoup類型的find_all找出所有的鏈接。其中有些鏈接不是圖片頁面的鏈接,我們又發現圖片鏈接的地址長度都是一樣的,我們可以通過將鏈接地址大小進行判斷,取得圖片地址鏈接。

for link in soup.find_all(a): href=link.get(href) l=os.path.join("https://www.1102f.com/",href[1:]) #title=link.get_text().encode("utf-8") title = link.get_text() print title if len(href) == 19: print keep(href,title)

我們還有一個任務就是取得下一頁的鏈接地址。

topurl = soup.find(attrs={class: next pagegbk})["href"]

二、獲取各個圖片的鏈接

我們現在可以通過上面取得網頁的地址來獲取各個圖片的鏈接,我們發現圖片的地址都是在img的src屬性里,我們可以通過上面的方法來獲得圖片的鏈接

def single(url,title): time.sleep(2) html=requests.get(url) soup=BeautifulSoup(html.text) for link in soup.find_all(img): print link.get(「src」)

三、下載圖片

圖片可以通過urllib.urlretrieve(imgurl, path)來保存圖片,但通過這種的方式保存的圖片無法打開,所以還是要通過

f.write(h.content)的方式來保存圖片。

還有將同一個標題下的圖片存在一起,我們通過判斷標題是否一樣,如果一樣就保存在這個文件夾下,

如果不一樣就創建文件夾

path=os.path.join(r"C:Usersasus-pcDesktopeautifulgirl555",title) if not os.path.exists(path): os.mkdir(path)

還有一點就是保存的圖片文件名,我們通過時間的名字來保存

name=str(time.time())[-7:-3]

四、主函數

我們利用下一頁返回是否為空來判斷是否爬取完成。如果返回的不是空,則會永遠執行,我們還有一個計時功能,來計算執行時間。

if __name__ == "__main__": print "anction time :" print time.strftime("%Y-%m-%d %H:%M:%S") url = r"https://www.1102f.com/Html/63/" topurl = frist(url) while 1: time.sleep(3) if topurl!=0: topurl=frist(topurl) else: print "end time:" print time.strftime("%Y-%m-%d %H:%M:%S")

具體的代碼我已上傳到我的GitHub上,鏈接地址如下:

CharlesAlison/sihuspider?

github.com圖標
推薦閱讀:

一個Python小白5個小時爬蟲經歷
大神教你如果學習Python爬蟲 如何才能高效地爬取海量數據
解讀爬蟲中HTTP的秘密(高階篇)
關於在Python中安裝Scrapy 框架遇到的問題的解決方案
請求、響應和反爬蟲

TAG:python爬蟲 | 成人 |