您的位置:極速下載站→ 資訊首頁 → 系統(tǒng)教程 → 系統(tǒng)資訊 → Python爬蟲抓取用并人工智能分析絕世美顏小姐姐,\"硬盤已滿\"
時間:2019-07-31 13:59:41 作者:johnnyl 瀏覽量:37
這個項目用了 requests + selenium + beautifulsoup 庫對網站的圖片進行抓取。接下來我就,給大家一步步解析一下,怎么用 python 爬蟲爬取圖片并下載的。
爬取結果
Python爬蟲抓取用并人工智能分析絕世美顏小姐姐,\"硬盤已滿\"圖一
以上就是爬取的結果,通過運行 meizi.py 代碼,就可以把圖片保存在我指定的目錄下,如果沒有此目錄,就用程序自動創(chuàng)建目錄,爬取的所有圖片都保存在此目錄下。
程序構造
Python爬蟲抓取用并人工智能分析絕世美顏小姐姐,\"硬盤已滿\"圖二
程序主要是由 6 個函數(shù)組成:
get_html() :利用 webdriver 來請求對應的網站。
get_page():解析面跳轉地址。
mkdir():判斷目錄是否存在,不存在就創(chuàng)建一個。
get_pic():提取圖片鏈接。
download():通過圖片鏈接下載保存。
main():程序執(zhí)行的主函數(shù)。
程序思路
對目標網站鏈接進行分析,找出目標網站鏈接的規(guī)律。
從目標網站里面提取圖片鏈接。
將圖片下載并保存在目錄中。
源代碼分析
我們通過f12調試頁面,看到圖片的鏈接,發(fā)現(xiàn)此鏈接并沒有在源代碼中,我們推測,圖片應該是通過 js 加載的,對于需要 js 才能加載出來的網站,我們就可以利用 selenium 的自動化測試請求庫來進行加載。利用 selenium 請求可以模擬真實瀏覽器訪問。
1browser = webdriver.Chrome()
2wait = WebDriverWait(browser,3)
利用 selenium 請求網頁需要下載 chrome 驅動放在 python 安裝目錄下。
分頁鏈接分析
1def get_page():
2 base_url = \'http://jandan.net/ooxx/\' #第一次進入的原始地址
3 soup = BeautifulSoup(get_html(base_url),\'lxml\') #解析原始地址
4 current_pages=soup.select(\'.cp-pagenavi .current-comment-page\')[0].get_text()[1:-1] #取出當前頁面字段
5 urllist = []
6 for page in range(1,int(current_pages)+1):
7 real_url=base_url+\'page-\'+str(page)+\'#comments\' #拼出分頁地址
8 urllist.append(real_url)
9 return urllist #返回所有分頁地址列表
原始鏈接base_url = \'http://jandan.net/ooxx/\',當我們點擊下一頁時,發(fā)現(xiàn)在原始鏈接的后面加了一段「page-52#comments」。
其中加的數(shù)字,就是表示現(xiàn)在所在的頁數(shù),通過 BeautifulSoup 庫對頁面進行解析,用選擇器提取表示頁數(shù)的字段「current-comment-page」,加入到原始鏈接中進行拼接。
創(chuàng)建目錄
1def get_pic():
2 for url in get_page():
3 mkdir()
4 html=get_html(url)
5 soup=BeautifulSoup(html,\'lxml\')
6 allimgs=soup.select(\'div .text p img\')
7 allimgs=re.findall(\'src=\"(.*?)\"\',str(allimgs))
8 download(allimgs)
9 print(\"下載完畢!\")
用 os.path.exists 方法來個判斷,如果不存在此目錄就創(chuàng)建一個,如果存在就忽略。
提取圖片
1def get_pic():
2 for url in get_page():
3 mkdir()
4 html=get_html(url)
5 soup=BeautifulSoup(html,\'lxml\')
6 allimgs=soup.select(\'div .text p img\')
7 allimgs=re.findall(\'src=\"(.*?)\"\',str(allimgs))