極速下載站 —— 提供優(yōu)質(zhì)軟件下載服務(wù),感受全新的極速下載體驗(yàn)!
最近更新 | 軟件專(zhuān)題 | 軟件分類(lèi) | 軟件排行
您的位置:極速下載站→ 資訊首頁(yè) → 系統(tǒng)教程 → 系統(tǒng)資訊 → Python爬蟲(chóng)抓取用并人工智能分析絕世美顏小姐姐,\"硬盤(pán)已滿\"
時(shí)間:2019-07-31 13:59:41 作者:johnnyl 瀏覽量:37
這個(gè)項(xiàng)目用了 requests + selenium + beautifulsoup 庫(kù)對(duì)網(wǎng)站的圖片進(jìn)行抓取。接下來(lái)我就,給大家一步步解析一下,怎么用 python 爬蟲(chóng)爬取圖片并下載的。
爬取結(jié)果
Python爬蟲(chóng)抓取用并人工智能分析絕世美顏小姐姐,\"硬盤(pán)已滿\"圖一
以上就是爬取的結(jié)果,通過(guò)運(yùn)行 meizi.py 代碼,就可以把圖片保存在我指定的目錄下,如果沒(méi)有此目錄,就用程序自動(dòng)創(chuàng)建目錄,爬取的所有圖片都保存在此目錄下。
程序構(gòu)造
Python爬蟲(chóng)抓取用并人工智能分析絕世美顏小姐姐,\"硬盤(pán)已滿\"圖二
程序主要是由 6 個(gè)函數(shù)組成:
get_html() :利用 webdriver 來(lái)請(qǐng)求對(duì)應(yīng)的網(wǎng)站。
get_page():解析面跳轉(zhuǎn)地址。
mkdir():判斷目錄是否存在,不存在就創(chuàng)建一個(gè)。
get_pic():提取圖片鏈接。
download():通過(guò)圖片鏈接下載保存。
main():程序執(zhí)行的主函數(shù)。
程序思路
對(duì)目標(biāo)網(wǎng)站鏈接進(jìn)行分析,找出目標(biāo)網(wǎng)站鏈接的規(guī)律。
從目標(biāo)網(wǎng)站里面提取圖片鏈接。
將圖片下載并保存在目錄中。
源代碼分析
我們通過(guò)f12調(diào)試頁(yè)面,看到圖片的鏈接,發(fā)現(xiàn)此鏈接并沒(méi)有在源代碼中,我們推測(cè),圖片應(yīng)該是通過(guò) js 加載的,對(duì)于需要 js 才能加載出來(lái)的網(wǎng)站,我們就可以利用 selenium 的自動(dòng)化測(cè)試請(qǐng)求庫(kù)來(lái)進(jìn)行加載。利用 selenium 請(qǐng)求可以模擬真實(shí)瀏覽器訪問(wèn)。
1browser = webdriver.Chrome()
2wait = WebDriverWait(browser,3)
利用 selenium 請(qǐng)求網(wǎng)頁(yè)需要下載 chrome 驅(qū)動(dòng)放在 python 安裝目錄下。
分頁(yè)鏈接分析
1def get_page():
2 base_url = \'http://jandan.net/ooxx/\' #第一次進(jìn)入的原始地址
3 soup = BeautifulSoup(get_html(base_url),\'lxml\') #解析原始地址
4 current_pages=soup.select(\'.cp-pagenavi .current-comment-page\')[0].get_text()[1:-1] #取出當(dāng)前頁(yè)面字段
5 urllist = []
6 for page in range(1,int(current_pages)+1):
7 real_url=base_url+\'page-\'+str(page)+\'#comments\' #拼出分頁(yè)地址
8 urllist.append(real_url)
9 return urllist #返回所有分頁(yè)地址列表
原始鏈接base_url = \'http://jandan.net/ooxx/\',當(dāng)我們點(diǎn)擊下一頁(yè)時(shí),發(fā)現(xiàn)在原始鏈接的后面加了一段「page-52#comments」。
其中加的數(shù)字,就是表示現(xiàn)在所在的頁(yè)數(shù),通過(guò) BeautifulSoup 庫(kù)對(duì)頁(yè)面進(jìn)行解析,用選擇器提取表示頁(yè)數(shù)的字段「current-comment-page」,加入到原始鏈接中進(jìn)行拼接。
創(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 方法來(lái)個(gè)判斷,如果不存在此目錄就創(chuàng)建一個(gè),如果存在就忽略。
提取圖片
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))