如何用python爬蟲下載圖片

這篇文章給大家分享的是有關(guān)如何用python爬蟲下載圖片的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。

蒙自網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

1.獲取圖片的url鏈接

l 首先,打開想要的圖片首頁(yè),注意下圖url中的index

l 然后,右鍵檢查網(wǎng)頁(yè)源代碼,直接(ctrl+F)搜索 objURL

l 最后,這樣,我們發(fā)現(xiàn)了需要圖片的url了。

2.把圖片鏈接保存到本地

現(xiàn)在,我們要做的就是將這些信息爬取出來(lái)。

注:網(wǎng)頁(yè)中有objURL,hoverURL…但是我們用的是objURL。

3.核心代碼:

獲取圖片url代碼:

# 獲取圖片url連接
def get_parse_page(pn,name):
    for i in range(int(pn)):
        # 1.獲取網(wǎng)頁(yè)
        print('正在獲取第{}頁(yè)'.format(i+1))
        # 百度圖片首頁(yè)的url
        # name是你要搜索的關(guān)鍵詞
        # pn是你想下載的頁(yè)數(shù)
        url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%s&pn=%d' %(name,i*20)
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4843.400 QQBrowser/9.7.13021.400'}
        # 發(fā)送請(qǐng)求,獲取相應(yīng)
        response = requests.get(url, headers=headers)
        html = response.content.decode()
        # print(html)
        # 2.正則表達(dá)式解析網(wǎng)頁(yè)
        # "objURL":"/upload/otherpic62/1823.jpg"
        results = re.findall('"objURL":"(.*?)",', html) # 返回一個(gè)列表
        # 根據(jù)獲取到的圖片鏈接,把圖片保存到本地
        save_to_txt(results, name, i)

保存圖片到本地代碼:

# 保存圖片到本地
def save_to_txt(results, name, i):
    j = 0
    # 在當(dāng)目錄下創(chuàng)建文件夾
    if not os.path.exists('./' + name):
        os.makedirs('./' + name)
    # 下載圖片
    for result in results:
        print('正在保存第{}個(gè)'.format(j))
        try:
            pic = requests.get(result, timeout=10)
            time.sleep(1)
        except:
            print('當(dāng)前圖片無(wú)法下載')
            j += 1
            continue
        # 可忽略,這段代碼有bug
        # file_name = result.split('/')
        # file_name = file_name[len(file_name) - 1]
        # print(file_name)
        #
        # end = re.search('(.png|.jpg|.jpeg|.gif)$', file_name)
        # if end == None:
        #     file_name = file_name + '.jpg'
        # 把圖片保存到文件夾
        file_full_name = './' + name + '/' + str(i) + '-' + str(j) + '.jpg'
        with open(file_full_name, 'wb') as f:
            f.write(pic.content)
        j += 1

感謝各位的閱讀!關(guān)于如何用python爬蟲下載圖片就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

文章題目:如何用python爬蟲下載圖片
文章來(lái)源:http://muchs.cn/article34/jejese.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站用戶體驗(yàn)、搜索引擎優(yōu)化、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化