国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python爬蟲 爬取網(wǎng)頁圖片

這篇具有很好參考價(jià)值的文章主要介紹了python爬蟲 爬取網(wǎng)頁圖片。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

一:爬蟲基礎(chǔ)

二:安裝html解析的python工具

三:爬取網(wǎng)頁圖片


一:爬蟲基礎(chǔ)

爬蟲基本過程:

1.請(qǐng)求標(biāo)頭 headers

2.創(chuàng)建一個(gè)會(huì)話 requests.Session

3.確定請(qǐng)求的路徑

4.根據(jù)路徑獲取網(wǎng)頁資源(HTML文件)

5.解析html文件BeautifulSoup div a 標(biāo)簽 獲取對(duì)應(yīng)的圖片

6.建立網(wǎng)絡(luò)連接進(jìn)行下載? 創(chuàng)建出下載的圖片

了解基本HTML結(jié)構(gòu)

保存帶有圖片的網(wǎng)頁

查找?guī)в衐ata-imgurl屬性的標(biāo)簽獲取url

<html>
       <head></head>
       <body></body>
</html>

頭:引用資源

體:包含一切標(biāo)簽

可以 F12 或者 ctrl+shift+i 打開控制臺(tái),查看網(wǎng)頁代碼,獲取自己想要的信息

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

二:安裝html解析的python工具

具體可以參考下面的這篇文章:

https://blog.csdn.net/m0_56051805/article/details/128407402

三:爬取網(wǎng)頁圖片

以爬取百度網(wǎng)頁圖片為例,大致實(shí)現(xiàn)如下

根據(jù)地址查找對(duì)應(yīng)圖片的信息:

# 根據(jù)地址去查找 對(duì)應(yīng)的圖片的信息
def Find(url, A):
    global List  # 保存信息的列表
    print('正在檢測(cè)圖片總數(shù),請(qǐng)稍等.....')
    t = 0
    i = 1
    s = 0
    while t < 1000:
        # 時(shí)間戳 不簡(jiǎn)單刷新訪問網(wǎng)址
        Url = url + str(t)
        try:
            # get獲取數(shù)據(jù)
            Result = A.get(Url, timeout=7, allow_redirects=False)
        except BaseException:
            t = t + 60
            continue
        else:
            # 拿到網(wǎng)站的數(shù)據(jù)
            result = Result.text
            # 找到圖片url
            pic_url = re.findall('"objURL":"(.*?)",', result, re.S)
            # 圖片總數(shù)
            s += len(pic_url)
            if len(pic_url) == 0:
                break
            else:
                List.append(pic_url)
                t = t + 60
    return s

記錄下相關(guān)的數(shù)據(jù)信息:

# 記錄相關(guān)數(shù)據(jù)
def recommend(url):
    Re = []
    try:
        html = requests.get(url, allow_redirects=False)
    except error.HTTPError as e:
        return
    else:
        html.encoding = 'utf-8'
        # html文件解析
        bsObj = BeautifulSoup(html.text, 'html.parser')
        div = bsObj.find('div', id='topRS')
        if div is not None:
            listA = div.findAll('a')
            for i in listA:
                if i is not None:
                    Re.append(i.get_text())
        return Re

對(duì)相應(yīng)網(wǎng)頁的圖片進(jìn)行下載:

# 下載圖片
def dowmloadPicture(html, keyword):
    global num
    # 找到圖片url
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
    print('找到關(guān)鍵詞:' + keyword + '的圖片,開始下載圖片....')
    for each in pic_url:
        print('正在下載第' + str(num + 1) + '張圖片,圖片地址:' + str(each))
        try:
            if each is not None:
                pic = requests.get(each, timeout=7)
            else:
                continue
        except BaseException:
            print('錯(cuò)誤,當(dāng)前圖片無法下載')
            continue
        else:
            string = file + r'\\' + str(num) + '.jpg'
            fp = open(string, 'wb')
            fp.write(pic.content)
            fp.close()
            num += 1
        if num >= numPicture:
            return

偽裝成瀏覽器向網(wǎng)頁提取服務(wù):

if __name__ == '__main__':  # 主函數(shù)入口
    # 模擬瀏覽器 請(qǐng)求數(shù)據(jù) 偽裝成瀏覽器向網(wǎng)頁提取服務(wù)
    headers = {
        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',
        'Upgrade-Insecure-Requests': '1'
    }

    # 創(chuàng)建一個(gè)請(qǐng)求的會(huì)話
    A = requests.Session()
    # 設(shè)置頭部信息
    A.headers = headers

    word = input("輸入要搜索的關(guān)鍵詞:")
    # 拼接路徑
    url = 'https://image.baidu.com/search/flip?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs1&word=' + word

    # 根據(jù)路徑去查找
    total = Find(url, A)
    # 記錄相關(guān)推薦圖片
    Recommend = recommend(url)
    print('經(jīng)過檢測(cè)%s類圖片共有%d張' % (word, total))

    numPicture = int(input('輸入要下載的數(shù)量'))
    file = input('請(qǐng)建立一個(gè)存儲(chǔ)圖片的文件夾,輸入文件夾名稱即可: ')
    y = os.path.exists(file)
    if y == 1:
        print('該文件已存在,請(qǐng)重新輸入')
        file = input('請(qǐng)建立一個(gè)存儲(chǔ)圖片的文件夾,)輸入文件夾名稱即可: ')
        os.mkdir(file)
    else:
        os.mkdir(file)

    t = 0
    tmp = url

    while t < numPicture:
        try:
            url = tmp + str(t)
            result = requests.get(url, timeout=10)
            print(url)
        except error.HTTPError as e:
            print('網(wǎng)絡(luò)錯(cuò)誤,請(qǐng)調(diào)整網(wǎng)絡(luò)后重試')
            t = t + 60
        else:
            dowmloadPicture(result.text, word)
            t = t + 60

測(cè)試過程如下

1 輸入要搜索的圖片,可以檢索網(wǎng)頁圖片的數(shù)量

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

2 輸入自己想要下載的圖片數(shù)量,同時(shí)創(chuàng)建一個(gè)存儲(chǔ)下載圖片的文件夾

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

3 等待下載完即可

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

4 到新創(chuàng)建的文件夾下可以查看到,網(wǎng)頁上獲取到的圖片已經(jīng)下載

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

python爬蟲爬取圖片代碼,python,爬蟲,開發(fā)語言

文章學(xué)習(xí)自:?學(xué)術(shù)菜鳥小晨 博主的文章

百度,搜狗,360網(wǎng)絡(luò)爬圖

完整源碼分享如下文章來源地址http://www.zghlxwxcb.cn/news/detail-781493.html

import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import os

num = 0
numPicture = 0
file = ''
List = []


# 根據(jù)地址去查找 對(duì)應(yīng)的圖片的信息
def Find(url, A):
    global List  # 保存信息的列表
    print('正在檢測(cè)圖片總數(shù),請(qǐng)稍等.....')
    t = 0
    i = 1
    s = 0
    while t < 1000:
        # 時(shí)間戳 不簡(jiǎn)單刷新訪問網(wǎng)址
        Url = url + str(t)
        try:
            # get獲取數(shù)據(jù)
            Result = A.get(Url, timeout=7, allow_redirects=False)
        except BaseException:
            t = t + 60
            continue
        else:
            # 拿到網(wǎng)站的數(shù)據(jù)
            result = Result.text
            # 找到圖片url
            pic_url = re.findall('"objURL":"(.*?)",', result, re.S)
            # 圖片總數(shù)
            s += len(pic_url)
            if len(pic_url) == 0:
                break
            else:
                List.append(pic_url)
                t = t + 60
    return s


# 記錄相關(guān)數(shù)據(jù)
def recommend(url):
    Re = []
    try:
        html = requests.get(url, allow_redirects=False)
    except error.HTTPError as e:
        return
    else:
        html.encoding = 'utf-8'
        # html文件解析
        bsObj = BeautifulSoup(html.text, 'html.parser')
        div = bsObj.find('div', id='topRS')
        if div is not None:
            listA = div.findAll('a')
            for i in listA:
                if i is not None:
                    Re.append(i.get_text())
        return Re


# 下載圖片
def dowmloadPicture(html, keyword):
    global num
    # 找到圖片url
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
    print('找到關(guān)鍵詞:' + keyword + '的圖片,開始下載圖片....')
    for each in pic_url:
        print('正在下載第' + str(num + 1) + '張圖片,圖片地址:' + str(each))
        try:
            if each is not None:
                pic = requests.get(each, timeout=7)
            else:
                continue
        except BaseException:
            print('錯(cuò)誤,當(dāng)前圖片無法下載')
            continue
        else:
            string = file + r'\\' + str(num) + '.jpg'
            fp = open(string, 'wb')
            fp.write(pic.content)
            fp.close()
            num += 1
        if num >= numPicture:
            return


if __name__ == '__main__':  # 主函數(shù)入口
    # 模擬瀏覽器 請(qǐng)求數(shù)據(jù) 偽裝成瀏覽器向網(wǎng)頁提取服務(wù)
    headers = {
        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0',
        'Upgrade-Insecure-Requests': '1'
    }

    # 創(chuàng)建一個(gè)請(qǐng)求的會(huì)話
    A = requests.Session()
    # 設(shè)置頭部信息
    A.headers = headers

    word = input("輸入要搜索的關(guān)鍵詞:")
    # 拼接路徑
    url = 'https://image.baidu.com/search/flip?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs1&word=' + word

    # 根據(jù)路徑去查找
    total = Find(url, A)
    # 記錄相關(guān)推薦圖片
    Recommend = recommend(url)
    print('經(jīng)過檢測(cè)%s類圖片共有%d張' % (word, total))

    numPicture = int(input('輸入要下載的數(shù)量'))
    file = input('請(qǐng)建立一個(gè)存儲(chǔ)圖片的文件夾,輸入文件夾名稱即可: ')
    y = os.path.exists(file)
    if y == 1:
        print('該文件已存在,請(qǐng)重新輸入')
        file = input('請(qǐng)建立一個(gè)存儲(chǔ)圖片的文件夾,)輸入文件夾名稱即可: ')
        os.mkdir(file)
    else:
        os.mkdir(file)

    t = 0
    tmp = url

    while t < numPicture:
        try:
            url = tmp + str(t)
            result = requests.get(url, timeout=10)
            print(url)
        except error.HTTPError as e:
            print('網(wǎng)絡(luò)錯(cuò)誤,請(qǐng)調(diào)整網(wǎng)絡(luò)后重試')
            t = t + 60
        else:
            dowmloadPicture(result.text, word)
            t = t + 60

到了這里,關(guān)于python爬蟲 爬取網(wǎng)頁圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python爬蟲實(shí)戰(zhàn) scrapy+selenium爬取動(dòng)態(tài)網(wǎng)頁

    python爬蟲實(shí)戰(zhàn) scrapy+selenium爬取動(dòng)態(tài)網(wǎng)頁

    最近學(xué)習(xí)了scrapy爬蟲框架,想要找個(gè)目標(biāo)練練手。由于現(xiàn)在很多網(wǎng)頁都是動(dòng)態(tài)的,因此還需要配合selenium爬取。本文旨在記錄這次學(xué)習(xí)經(jīng)歷,如有疑問或不當(dāng)之處,可以在評(píng)論區(qū)指出,一起學(xué)習(xí)。 對(duì)scrapy不了解的同學(xué)可以閱讀這篇文章 爬蟲框架 Scrapy 詳解,對(duì)scrapy框架介紹的

    2024年02月07日
    瀏覽(49)
  • 初學(xué)python爬蟲學(xué)習(xí)筆記——爬取網(wǎng)頁中小說標(biāo)題

    初學(xué)python爬蟲學(xué)習(xí)筆記——爬取網(wǎng)頁中小說標(biāo)題

    一、要爬取的網(wǎng)站小說如下圖 二、打開網(wǎng)頁的“檢查”,查看html頁面 發(fā)現(xiàn)每個(gè)標(biāo)題是列表下的一個(gè)個(gè)超鏈接,從183.html到869.html 可以使用for循環(huán)依次得到: 三、具體代碼如下: 第一次學(xué)習(xí)爬蟲,能得出查詢結(jié)果,心中還是無限的高興。 不過,還是發(fā)現(xiàn)的很多,比如for循環(huán)

    2024年02月09日
    瀏覽(22)
  • Python爬蟲|使用Selenium輕松爬取網(wǎng)頁數(shù)據(jù)

    Python爬蟲|使用Selenium輕松爬取網(wǎng)頁數(shù)據(jù)

    1. 什么是selenium? Selenium是一個(gè)用于Web應(yīng)用程序自動(dòng)化測(cè)試工具。Selenium測(cè)試直接運(yùn)行在瀏覽器中,就像真正的用戶在操作瀏覽器一樣。支持的瀏覽器包括IE,F(xiàn)irefox,Safari,Chrome等。 Selenium可以驅(qū)動(dòng)瀏覽器自動(dòng)執(zhí)行自定義好的邏輯代碼,也就是可以通過代碼完全模擬成人類使用

    2024年02月04日
    瀏覽(30)
  • 輕松爬取網(wǎng)頁數(shù)據(jù):低代碼&零編程技巧的自動(dòng)化爬蟲神器!

    輕松爬取網(wǎng)頁數(shù)據(jù):低代碼&零編程技巧的自動(dòng)化爬蟲神器!

    在以前的文章中,我們學(xué)習(xí)了通過playwright+python+requests可以實(shí)現(xiàn)繞過瀏覽器鑒權(quán)進(jìn)行接口請(qǐng)求。 在曾經(jīng)的一次數(shù)據(jù)爬取的時(shí)候,我嘗試去獲取Boss直聘的崗位信息,可是很不巧,boss直聘的反爬機(jī)制把我的IP直接封了,妙啊。 在這里給大家推薦一款工具:亮數(shù)據(jù)。 他可以使用真

    2024年02月03日
    瀏覽(21)
  • 【python爬蟲】—圖片爬取

    【python爬蟲】—圖片爬取

    從https://pic.netbian.com/4kfengjing/網(wǎng)站爬取圖片,并保存 獲取待爬取網(wǎng)頁 獲取所有圖片,并下載 爬取結(jié)果展示

    2024年02月10日
    瀏覽(88)
  • Python爬蟲 爬取圖片

    Python爬蟲 爬取圖片

    在我們?nèi)粘I暇W(wǎng)瀏覽網(wǎng)頁的時(shí)候,經(jīng)常會(huì)看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設(shè)計(jì)的素材。 我們最常規(guī)的做法就是通過鼠標(biāo)右鍵,選擇另存為。但有些圖片鼠標(biāo)右鍵的時(shí)候并沒有另存為選項(xiàng),還有辦法就通過就是通過

    2024年02月13日
    瀏覽(89)
  • [爬蟲篇]Python爬蟲之爬取網(wǎng)頁音頻_爬蟲怎么下載已經(jīng)找到的聲頻

    [爬蟲篇]Python爬蟲之爬取網(wǎng)頁音頻_爬蟲怎么下載已經(jīng)找到的聲頻

    audio_DATA_get = requests.get(url=audio_DATA,headers=headers) audio_DATA_get_text = audio_DATA_get.text audio_DATA_download_url = re.findall(‘“src”:“(.*?)”’,audio_DATA_get_text) print(audio_DATA_download_url) download_data_url = audio_DATA_download_url[0] try: open_download_data_url = urllib.request.urlopen(download_data_url) except: print(downlo

    2024年04月22日
    瀏覽(96)
  • Python爬蟲:為什么你爬取不到網(wǎng)頁數(shù)據(jù)

    Python爬蟲:為什么你爬取不到網(wǎng)頁數(shù)據(jù)

    前言: 之前小編寫了一篇關(guān)于爬蟲為什么爬取不到數(shù)據(jù)文章(文章鏈接為:https://liuze.blog.csdn.net/article/details/105965562),但是當(dāng)時(shí)小編也是胡亂編寫的,其實(shí)里面有很多問題的,現(xiàn)在小編重新發(fā)布一篇關(guān)于爬蟲爬取不到數(shù)據(jù)文章,希望各位讀者更加了解爬蟲。 1. 最基礎(chǔ)的爬蟲

    2024年02月05日
    瀏覽(29)
  • 【python爬蟲】中央氣象局預(yù)報(bào)—靜態(tài)網(wǎng)頁圖像爬取練習(xí)

    【python爬蟲】中央氣象局預(yù)報(bào)—靜態(tài)網(wǎng)頁圖像爬取練習(xí)

    中央氣象臺(tái) 是中國(guó)氣象局(中央氣象臺(tái))發(fā)布的七天降水預(yù)報(bào)頁面。這個(gè)頁面提供了未來一周內(nèi)各地區(qū)的降水預(yù)報(bào)情況,幫助人們了解即將到來的降水情況,以做出相應(yīng)的應(yīng)對(duì)措施。頁面中的預(yù)報(bào)內(nèi)容通常包括以下要點(diǎn): 地區(qū)分布 :頁面展示了中國(guó)各地區(qū)的降水預(yù)報(bào)情況。

    2024年02月10日
    瀏覽(19)
  • python基于Selenium方法爬取網(wǎng)頁圖片

    python基于Selenium方法爬取網(wǎng)頁圖片

    selenium是一個(gè)用于web應(yīng)用程序的自動(dòng)化測(cè)試工具,通過Selenium可以寫出自動(dòng)化程序,擬人在瀏覽器對(duì)網(wǎng)頁進(jìn)行操作。selenium可以編寫出自動(dòng)化程序,簡(jiǎn)化手動(dòng)保存的部分。 requests庫(kù)可以向第三方發(fā)送http請(qǐng)求,是一個(gè)用于網(wǎng)絡(luò)請(qǐng)求的模塊,通常以GET方式請(qǐng)求特定資源,請(qǐng)求中不應(yīng)

    2024年02月03日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包