真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用python批量獲取網(wǎng)頁圖片的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

為合浦等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及合浦網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、合浦網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

小編給大家分享一下用python批量獲取網(wǎng)頁圖片的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

用python批量獲取網(wǎng)頁圖片的方法:1、通過url獲取目標(biāo)文件源碼;2、處理【index.html】源碼中的圖片資源;3、保存【index.html】中的【css】文件;4、解碼base64格式的圖片并保存。

用python批量獲取網(wǎng)頁圖片的方法

你可能需要的工作環(huán)境:

  Python 3.6官網(wǎng)下載

  我們這里以sogou作為爬取的對象。

  首先我們進(jìn)入搜狗圖片

用python批量獲取網(wǎng)頁圖片的方法

進(jìn)去后就是這個啦,然后F12進(jìn)入開發(fā)人員選項,筆者用的是Chrome。

右鍵圖片>>檢查    

用python批量獲取網(wǎng)頁圖片的方法

發(fā)現(xiàn)我們需要的圖片src是在img標(biāo)簽下的,于是先試著用 Python 的 requests提取該組件,進(jìn)而獲取img的src然后使用 urllib.request.urlretrieve逐個下載圖片,從而達(dá)到批量獲取資料的目的,思路好了,下面應(yīng)該告訴程序要爬取的url為http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD,此url來自進(jìn)入分類后的地址欄。明白了url地址我們來開始愉快的代碼時間吧:

在寫這段爬蟲程序的時候,最好要逐步調(diào)試,確保我們的每一步操作正確,這也是程序猿應(yīng)該有的好習(xí)慣。筆者不知道自己算不算個程序猿哈。線面我們來剖析該url指向的網(wǎng)頁。

import requests
import urllib
from bs4 import BeautifulSoup
res = requests.get('http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD')
soup = BeautifulSoup(res.text,'html.parser')
print(soup.select('img'))

output:

用python批量獲取網(wǎng)頁圖片的方法

 發(fā)現(xiàn)輸出內(nèi)容并不包含我們要的圖片元素,而是只剖析到logo的img,這顯然不是我們想要的。也就是說需要的圖片資料不在url  即 http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD里面。因此考慮可能該元素是動態(tài)的,細(xì)心的同學(xué)可能會發(fā)現(xiàn),當(dāng)在網(wǎng)頁內(nèi),向下滑動鼠標(biāo)滾輪,圖片是動態(tài)刷新出來的,也就是說,該網(wǎng)頁并不是一次加載出全部資源,而是動態(tài)加載資源。這也避免了因為網(wǎng)頁過于臃腫,而影響加載速度。下面痛苦的探索開始了,我們是要找到所有圖片的真正的url 筆者也是剛剛接觸,找這個不是太有經(jīng)驗。最后找的位置F12>>Network>>XHR>>(點擊XHR下的文件)>>Preview。

用python批量獲取網(wǎng)頁圖片的方法

發(fā)現(xiàn),有點接近我們需要的元素了,點開all_items 發(fā)現(xiàn)下面是0 1 2 3...一個一個的貌似是圖片元素。試著打開一個url。發(fā)現(xiàn)真的是圖片的地址。找到目標(biāo)之后。點擊XHR下的Headers

得到第二行

Request URL:

http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start=0&len=15&width=1536&height=864,試著去掉一些不必要的部分,技巧就是,刪掉可能的部分之后,訪問不受影響。經(jīng)筆者篩選。最后得到的url:http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start=0&len=15  字面意思,知道category后面可能為分類。start為開始下標(biāo),len為長度,也即圖片的數(shù)量。好了,開始愉快的代碼時間吧:

開發(fā)環(huán)境為Win7  Python 3.6,運(yùn)行的時候Python需要安裝requests,

Python3.6 安裝requests 應(yīng)該CMD敲入:

pip install requests

筆者在這里也是邊調(diào)試邊寫,這里把最終的代碼貼出來:

import requestsimport jsonimport urllibdef getSogouImag(category,length,path):
    n = length
    cate = category
    imgs = requests.get('http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category='+cate+'&tag=%E5%85%A8%E9%83%A8&start=0&len='+str(n))
    jd = json.loads(imgs.text)
    jd = jd['all_items']
    imgs_url = []    for j in jd:
        imgs_url.append(j['bthumbUrl'])
    m = 0    for img_url in imgs_url:            print('***** '+str(m)+'.jpg *****'+'   Downloading...')
            urllib.request.urlretrieve(img_url,path+str(m)+'.jpg')
            m = m + 1    print('Download complete!')
getSogouImag('壁紙',2000,'d:/download/壁紙/')

程序跑起來的時候,筆者還是有點小激動的。來,感受一下:

用python批量獲取網(wǎng)頁圖片的方法

 用python批量獲取網(wǎng)頁圖片的方法

至此,關(guān)于該爬蟲程序的編程過程敘述完畢。整體來看,找到需要爬取元素所在url,是爬蟲諸多環(huán)節(jié)中的關(guān)鍵。

看完了這篇文章,相信你對用python批量獲取網(wǎng)頁圖片的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!


當(dāng)前文章:用python批量獲取網(wǎng)頁圖片的方法-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/cogcej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部