Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫在前面
很高興我這系列的文章寫道第18篇了,今天寫一個爬蟲愛好者特別喜歡的網站煎蛋網http://jandan.net/ooxx,這個網站其實還是有點意思的,網站很多人寫了N多的教程了,各種方式的都有,當然網站本身在爬蟲愛好者的不斷進攻下,也在不斷的完善,反爬措施也很多,今天我用selenium在揍他一波。
整體看上去,煎蛋網的妹子圖質量還是可以的,不是很多,但是還蠻有味道的,這可能也是爬蟲er,一批一批的奔赴上去的原因。
1. 網站分析
這個網站如果用 selenium 爬取,其實也沒什么要分析的,模擬訪問就行,導入必備的模塊。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from lxml import etree import requestsimport time我使用的是PhantomJS 去加載瀏覽器,關于這個PhantomJS,去互聯網搜索一下吧,資料大把,會看的很爽的,總之呢,它可以模擬一個真實的瀏覽器做任何事情,得到你想要的數據。
browser = webdriver.PhantomJS() browser.set_window_size(1366, 768) # 這個地方需要設置一下瀏覽器的尺寸 wait = WebDriverWait(browser,10) browser.get("http://jandan.net/ooxx")2. 分析數據
程序獲取到數據之后就可以對數據進行處理了,編寫一個get_content函數,用來處理網頁源碼。
def get_content():try:wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="comments"]/ol')))#print("正在爬取{}".format(browser.current_url))page_source = browser.page_source # 獲取網頁源碼html = etree.HTML(page_source) # 解析源碼imgs = html.xpath("//li[contains(@id,'comment')]//img/@src") # 匹配圖片download(imgs)except Exception as e:print("錯誤")print(e)finally:browser.close()圖片獲取到之后,在上面的代碼中,注意有一個地方調用了一個 download函數,這個函數就是用來下載圖片的
def download(imgs):path = "./xxoo/{}" # 路徑我寫死了for img in imgs:try:res = requests.get(img)content = res.contentexcept Exception as e:print(e)continuefile_name = img.split("/")[-1] # 獲取文件名with open(path.format(file_name),"wb") as f:f.write(content)print(file_name,"成功下載文件")time.sleep(0.3)# 循環下載完畢,進行翻頁操作 previous-comment-pagenext = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="comments"]//a[@class="previous-comment-page"]')))next.click()return get_content() # 繼續調用上面的網頁源碼分析流程OK,運行一下。
轉載于:https://www.cnblogs.com/happymeng/p/10220923.html
總結
以上是生活随笔為你收集整理的Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javaBean为什么要implemen
- 下一篇: Go语言学习笔记(十八)之文件读写