您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么使用python爬取網頁圖片”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在現在這個信息爆炸的時代,要想高效的獲取數據,爬蟲是非常好用的。而用python做爬蟲也十分簡單方便,下面通過一個簡單的小爬蟲程序來看一看寫爬蟲的基本過程:
語言:python
IDE:pycharm
首先是要用到的庫,因為是剛入門最簡單的程序,我們主要就用到下面這兩:
import requests //用于請求網頁 import re //正則表達式,用于解析篩選網頁中的信息
其中re是python自帶的,requests庫需要我們自己安裝,在命令行中輸入pip install requests即可。
然后隨便找一個網站,注意不要嘗試爬取隱私敏感信息,這里找了個表情包網站:
注:此處表情包網站中的內容本來就可以免費下載,所以爬蟲只是簡化了我們一個個點的流程,注意不能去爬取付費資源。
我們要做的就是通過爬蟲把這些表情包下載到我們電腦里。
首先肯定要通過python訪問這個網站,代碼如下:
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0' } response = requests.get('https://qq.yh41.com/zjbq/',headers=headers) //請求網頁
其中之所以要加headers這一段是因為有些網頁會識別到你是通過python請求的然后把你拒絕,所以我們要換個正常的請求頭。可以隨便找一個或者f12從網絡信息里復制一個。
然后我們要找到我們要爬取的圖片在網頁代碼里的位置,f12查看源代碼,找到表情包如下:
然后建立匹配規則,用正則表達式把中間那串替換掉,最簡單的就是.*?
t = '<img src="(.*?)" alt="(.*?)" width="160" height="120">'
像這樣。
然后就可以調用re庫里的findall方法把相關內容爬下來了:
result = re.findall(t, response.text)
返回的內容是由字符串組成的列表,最后我們經由爬到的地址通過python語句把圖片下下來保存到文件夾里就行了。
import requests import re import os image = '表情包' if not os.path.exists(image): os.mkdir(image) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0' } response = requests.get('https://qq.yh41.com/zjbq/',headers=headers) response.encoding = 'GBK' response.encoding = 'utf-8' print(response.request.headers) print(response.status_code) t = '<img src="(.*?)" alt="(.*?)" width="160" height="120">' result = re.findall(t, response.text) for img in result: print(img) res = requests.get(img[0]) print(res.status_code) s = img[0].split('.')[-1] #截取圖片后綴,得到表情包格式,如jpg ,gif with open(image + '/' + img[1] + '.' + s, mode='wb') as file: file.write(res.content)
最后結果就是這個樣子:
“怎么使用python爬取網頁圖片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。