掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流
本文轉載自微信公眾號「菜J學Python」,作者游世九黎。轉載本文請聯(lián)系菜J學Python公眾號。

創(chuàng)新互聯(lián)公司是專業(yè)的揚中網站建設公司,揚中接單;提供成都做網站、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行揚中網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
大家好,我是J哥,本文來自我的好友游世久黎的投稿。
相信很多設計小伙伴有好的靈感,但是沒有好的設計素材,今天它來了。攝圖網4000張設計素材,取之不盡,如下圖所示:
好了,廢話不多說,開始用Python采集。
采集攝圖網的素材圖片,目標網址-->請求數據-->解析數據-->提取數據-->保存數據。
首先我們用到的技術包括:urllib,requests,bs4等。
打開網址:https://699pic.com/paihang/tupian.html,分析網頁結構,我們可以看到首頁圖片數據雜論,這里我們爬取的是"今日熱門"的圖片,點擊發(fā)現更多:來到目標頁面,拖動滾輪滑到底部,發(fā)現有40個分頁,也就是我們今天要爬取的4000張設計圖片:
接著對列表中的每一條url進行遍歷,然后發(fā)起請求:
- for url in urllist:
- resp = requests.get(url,headers=hd)
- html = resp.content.decode('utf-8')
得到了一個html對象,爬取頁面數據信息后,需要對頁面進行解析,這里我使用到的解析庫是bs4(偏愛),當然xpath也是可以的。通過分析頁面元素,我們發(fā)現每個翻頁里面的圖片都有這樣的規(guī)律:
因此可以通過bs4的select方法抓取所有class='lazy'的img標簽,得到一個列表,然后通過測試發(fā)現圖片的鏈接存放在img標簽的data-original屬性里,通過img.attrs['data-original']得到,再與'https:'進行字符串拼接,得到完整圖片鏈接。
- for img in imgs:
- img_url = img.attrs['data-original']
- total_url = base_http_str + img_url
- print(total_url)
- # print('--'*60)
- imgurllist.append(total_url)
最后運用urllib中的urlretrive方法,把圖片保存到本地。
- def writeData(imgurllist):
- for index,url in enumerate(imgurllist):
- urllib.request.urlretrieve(url,'image/'+ '%s.png'%index)
- print('第%s張圖片下載完成'%index)
運行爬蟲代碼,效果如下:
圖片就下載完成了,不過運用傳統(tǒng)方法有點慢,下次試試多線程,提升爬蟲效率。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流