Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析
上一篇:Python 爬蟲入門篇-如何獲取網頁中的圖片。我們了解到了 urllib 獲取圖片的原理,urllib.request.urlretrieve() 就是用來獲取圖片的。
這一篇,我們用正則表達式匹配出指定網站的所有圖片,然后都下載下來。
re 庫就是我們用來做正則表達式的庫,re.findall(a, html) 可以把 html 中所有符合 a 正則表達式的鏈接全都匹配出來。
我們來看看 a:'img src="(http.*?)"',一般 html 中的圖片就是 img 標簽,加上 src 網址,光匹配 img 標簽的話,可能是空的哦。
http.* 就是匹配所有網址了,"." 代表任意字符,"*" 代表前一個字符可以是任意數量了,.* 就表示 http 開頭的所有網址了,.*? 加個 ? 就限制滿足條件的只匹配一次,沒有 ? 就是匹配任意次,.* 習慣性稱之為貪婪匹配!
import urllib.request import reurl="http://ohhappyday.com/" # 我們要爬取圖片的地址page = urllib.request.urlopen(url) # 第一行 打開網址 html = page.read().decode("utf-8") # 第二行 獲取html源碼imglist = re.findall('img src="(http.*?)"',html) # 第三行 在html中匹配出符合條件的字符串x=0 for imgurl in imglist: # 遍歷圖片地址列表urllib.request.urlretrieve(imgurl,'pic%s.jpg' %x) # 第四行 獲取圖片并保存x=x+1注:可以分別用 print 打印出 page、html、imglist、imgurl,這樣可以讓你更清楚每一步在做什么,產生了什么。
注:如果網站地址中包含中文會報錯,這個會在后期講解中做處理。
注:如果某些網站沒有效果可能是做了反爬蟲處理,或者它展示圖片的原理不是常規的 img 加 src 網址。
如下是我們要實戰的網站:
運行后的效果圖如下:
喜歡的點個贊?吧!
總結
以上是生活随笔為你收集整理的Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyQt5 技巧篇-参数控制窗体右上角只
- 下一篇: Python+selenium 自动化-