迫於無聊,又恰好正在學習python,就來記錄一篇關於python爬取圖片連接下載本地的入門文章...html
主要用到的模塊: request
和 BeautifulSoup4
開發以前建議先看一下官方給出關於這兩個模塊的文檔node
開發環境:python
不一樣的python版本在部分代碼上可能會有差別,請務必覈對好版本...git
response = requests.get(url, headers=header, timeout=30)
複製代碼
經過上圖發現,他的每個img標籤的class都是img-responsive lazy image_dta
github
那麼咱們就能夠直接經過bs4的find_all屬性將其取出...數組
datas = soup.find_all(
name="img", attrs={"class": "img-responsive lazy image_dta"})
複製代碼
由於find_all取出的是一個數組,那麼咱們就須要去進行循環讀取每一個img標籤學習
for data in datas:
print("downloading:", data.attrs['data-original'])
request.urlretrieve(
data.attrs['data-original'], downPath+'\%s.jpg' % time.time())
複製代碼
這邊用的是request.urlretrieve進行資源下載...優化
須要注意的是,通常來說咱們都是去獲取圖片的src屬性,可是因爲這個網站使用了圖片延時加載,因此咱們直接獲取src的話就取到他默認的圖片,這邊咱們能夠看到img的data-original屬性是包含了圖片的路徑的,因此咱們就直接取data-original就能夠了....網站
最後main方法執行...ui
if __name__ == '__main__':
pool = ThreadPool(4)
urls = [
"http://www.doutula.com/photo/list/?page={}".format(str(i)) for i in range(1, 3)]
pool.map(getImg, urls)
pool.close()
pool.join()
複製代碼
這邊運用了線城池進行簡單的代碼優化,後面會加入代理池和隊列進行優化。
代碼地址:python爬取表情包並下載到本地
若是代碼有幫助到您,記得點個start哦~~~