詳解用selenium來(lái)下載小姐姐圖片并保存
下載小姐姐圖片并保存
- 請(qǐng)求的地址
- 偽裝
- 定位元素
- 下載圖片
- 保存好了
下面開(kāi)始我們的實(shí)戰(zhàn),這個(gè)是我們今天訪問(wèn)的url:
url = 'http://pic.netbian.com/4kmeinv/'
1,先把包給導(dǎo)進(jìn)來(lái):
import requests from selenium.webdriver import Chrome,ChromeOptions import os
不知道怎么導(dǎo)包的看我的第一篇,附上鏈接:
http://www.dbjr.com.cn/article/204774.htm
2, 接下來(lái)就開(kāi)始發(fā)送請(qǐng)求
#請(qǐng)求的url url = 'http://pic.netbian.com/4kmeinv/' #進(jìn)行偽裝 headers = { "User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" } #發(fā)起請(qǐng)求 response = requests.get(url=url,headers=headers) #手動(dòng)設(shè)定響應(yīng)數(shù)據(jù)的編碼格式 response.encoding = 'utf-8' page_text = response.text #這個(gè)就是再后臺(tái)上面運(yùn)行那個(gè)瀏覽器,不在表面上占用你的 option = ChromeOptions() option.add_argument('--headless') option.add_argument("--no-sandbox") option.add_experimental_option('excludeSwitches',['enable-automation']) #這里也要輸入 browser = Chrome(options=option) browser.get(url)
相信看過(guò)我上篇的都知道這些,那就廢話不多說(shuō),定位元素:
3,定位:
先看下代碼再說(shuō):
li = browser.find_elements_by_xpath('//*[@id="main"]/div[3]/ul/li')
老樣子,分為三步,第一步選中所選的圖片–>copy xpath–>ctrl+f -->粘貼進(jìn)去可以看到是1of1,但明顯我們要的是這個(gè)頁(yè)面上所有的圖片,所以呀,只需要改一下就可以啦,將tr[1],里面的包括括號(hào)刪掉就可以。
這樣的話就是整個(gè)頁(yè)面內(nèi)所有的圖片啦,
4,創(chuàng)建文件以保存我們所要的圖片:
#創(chuàng)建一個(gè)文件夾 if not os.path.exists('./小美女圖'): os.mkdir('./小美女圖')
然后再循環(huán)一下就好啦:
for i in li: img_src = i.find_element_by_xpath('./a/img').get_attribute('src') img_name = i.find_element_by_xpath('./a/img').get_attribute('alt')+'.jpg'
至于為什么要這么寫(xiě),可以看一下我的上一篇博客:
http://www.dbjr.com.cn/article/204771.htm
5,保存
img_data = requests.get(url=img_src,headers=headers).content img_path = '小美女圖/'+img_name with open(img_path,'wb') as fp: fp.write(img_data) print(img_name,'下載成功?。?!')
最后的結(jié)果哈哈哈哈:這個(gè)也不存在什么圖片尺寸過(guò)大啥的,如果錯(cuò)了,多半是你元素沒(méi)有定位好。
到此這篇關(guān)于詳解用selenium來(lái)下載小姐姐圖片并保存的文章就介紹到這了,更多相關(guān)selenium 下載圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用tkinter模塊實(shí)現(xiàn)推箱子游戲
這篇文章主要介紹了Python使用tkinter模塊實(shí)現(xiàn)推箱子游戲,主要分享兩點(diǎn),第一就是這個(gè)程序的實(shí)現(xiàn)過(guò)程,第二點(diǎn)就是我在編寫(xiě)過(guò)程中的一些思考。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參看下吧2019-10-10

Python?OpenCV中常用圖片處理函數(shù)小結(jié)

Pytorch實(shí)現(xiàn)常用乘法算子TensorRT的示例代碼

使用Python腳本來(lái)獲取Cisco設(shè)備信息的示例

在python3中實(shí)現(xiàn)查找數(shù)組中最接近與某值的元素操作