亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python爬蟲爬取網(wǎng)站圖片

 更新時間:2022年01月02日 15:02:54   作者:fff2zrx  
這篇文章主要介紹了Python爬蟲爬取網(wǎng)站圖片,此次python3主要用requests,解析圖片網(wǎng)址主要用beautiful soup,可以基本完成爬取圖片功能,需要的朋友可以參考一下

此次python3主要用requests,解析圖片網(wǎng)址主要用beautiful soup,可以基本完成爬取圖片功能,

爬蟲這個當然大多數(shù)人入門都是爬美女圖片,我當然也不落俗套,首先也是隨便找了個網(wǎng)址爬美女圖片

from bs4 import BeautifulSoup
import requests
?
?
if __name__=='__main__':
? ? url='http://www.27270.com/tag/649.html'
? ? headers = {
? ? ? ? "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
? ? req = requests.get(url=url, headers=headers)
? ? req=requests.get(url=url,headers=headers)
? ? req.encoding = 'gb2312'
? ? html=req.text
? ? bf=BeautifulSoup(html,'lxml')
? ? targets_url=bf.find('div',class_='w1200 oh').find_all('a',target='_blank')
? ? for each in targets_url:
? ? ? ? img_req=requests.get(url=each.get('href'),headers=headers)
? ? ? ? img_req.encoding = 'gb2312'
? ? ? ? html = img_req.text
? ? ? ? bf = BeautifulSoup(html, 'lxml')
? ? ? ? img_url = bf.find('div', class_='articleV4Body').find('img')['src']
? ? ? ? name=each.img.get('alt')+'.jpg'
? ? ? ? path=r'C:\Users\asus\Desktop\新建文件夾'
? ? ? ? file_name = path + '\\' + name
? ? ? ? try:
? ? ? ? ? ? req1=requests.get(img_url,headers=headers)
? ? ? ? ? ? f=open(file_name,'wb')
? ? ? ? ? ? f.write(req1.content)
? ? ? ? ? ? f.close()
? ? ? ? except:
? ? ? ? ? ? print("some error")

期間遇到的一個情況是,它到訪問img_url的時候總報錯連接主機失敗,我開始以為是網(wǎng)址加了反爬之類的,但是我單獨拿出來一個網(wǎng)址,卻可以很容易的訪問,百思不得其解,最后咨詢大佬告訴我把img_url的每一個都試試看,可能是某一個網(wǎng)址出了問題,找了找果然是有個叛徒,產(chǎn)生的img_url中第二個網(wǎng)址無法訪問,怪不得老報錯,我應(yīng)該多試幾個的,一葉障目

我同時也是個火影迷,掌握基本方法后準備試試爬取火影圖片,也是網(wǎng)址找了個網(wǎng)址:

http://desk.zol.com.cn/dongman/huoyingrenzhe/

可以看到火影的圖片是以圖集的形式儲存的,所以這個下載就比剛才的稍微多了一點步驟

查看網(wǎng)站源代碼容易發(fā)現(xiàn),圖集的鏈接所在都是class='photo-list-padding'的li標簽里,且鏈接沒有補全

點開其中一個鏈接, http://desk.zol.com.cn/dongman/huoyingrenzhe/(前面為瀏覽器自動補全,在代碼里需要自己補全)

可以看到圖片的下載地址以及打開本圖集下一張圖片的鏈接

了解完網(wǎng)站的圖片構(gòu)造后動手寫代碼,我們篩選出圖集的鏈接后,通過圖集的鏈接找到第一張圖片下載地址和第二張圖片的鏈接,通過第二張的鏈接找到第二張的下載地址和第三張的鏈接,循環(huán)下去,直到本圖集到底,接著開始第二個圖集,直到所有圖集下載完畢,代碼如下,為了方便循環(huán),我們集成下載圖片功能為download函數(shù),解析圖片網(wǎng)址功能為parses_picture

from bs4 import BeautifulSoup
import requests
?
def download(img_url,headers,n):
? ? req = requests.get(img_url, headers=headers)
? ? name = '%s'%n+'='+img_url[-15:]
? ? path = r'C:\Users\asus\Desktop\火影壁紙1'
? ? file_name = path + '\\' + name
? ? f = open(file_name, 'wb')
? ? f.write(req.content)
? ? f.close
?
def parses_picture(url,headers,n):
? ? url = r'http://desk.zol.com.cn/' + url
? ? img_req = requests.get(url, headers=headers)
? ? img_req.encoding = 'gb2312'
? ? html = img_req.text
? ? bf = BeautifulSoup(html, 'lxml')
? ? try:
? ? ? ? img_url = bf.find('div', class_='photo').find('img').get('src')
? ? ? ? download(img_url,headers,n)
? ? ? ? url1 = bf.find('div',id='photo-next').a.get('href')
? ? ? ? parses_picture(url1,headers,n)
? ? except:
? ? ? ? print(u'第%s圖片集到頭了'%n)
?
if __name__=='__main__':
? ? url='http://desk.zol.com.cn/dongman/huoyingrenzhe/'
? ? headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
? ? req = requests.get(url=url, headers=headers)
? ? req=requests.get(url=url,headers=headers)
? ? req.encoding = 'gb2312'
? ? html=req.text
? ? bf=BeautifulSoup(html,'lxml')
? ? targets_url=bf.find_all('li',class_='photo-list-padding')
? ? n=1
? ? for each in targets_url:
? ? ? ? url = each.a.get('href')
? ? ? ? parses_picture(url,headers,n)
? ? ? ? n=n+1

期間遇到的一個情況是每次一個圖集到底的時候,就會產(chǎn)生報錯,因為找不到下一張圖片的鏈接了,于是我便加上try語句來捕捉這一報錯,讓程序繼續(xù)下去,有了bf果然比正則表達式簡單,可以通過標簽屬性很方便的找到想要的信息。

下載情況

到此這篇關(guān)于Python爬蟲爬取網(wǎng)站圖片的文章就介紹到這了,更多相關(guān)Python爬取網(wǎng)站圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python+pyqt實現(xiàn)12306圖片驗證效果

    python+pyqt實現(xiàn)12306圖片驗證效果

    這篇文章主要為大家詳細介紹了python+pyqt實現(xiàn)12306圖片驗證效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Python中Tkinter組件Menu的具體使用

    Python中Tkinter組件Menu的具體使用

    本文主要介紹了Python中Tkinter組件Menu的具體使用,Menu組件用于實現(xiàn)頂級菜單、下拉菜單和彈出菜單,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • python進階教程之異常處理

    python進階教程之異常處理

    這篇文章主要介紹了python進階教程之異常處理,在項目開發(fā)中,異常處理是不可或缺的,需要的朋友可以參考下
    2014-08-08
  • python3注冊全局熱鍵的實現(xiàn)

    python3注冊全局熱鍵的實現(xiàn)

    這篇文章主要介紹了python3注冊全局熱鍵的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python實現(xiàn)Kmeans聚類算法

    Python實現(xiàn)Kmeans聚類算法

    這篇文章主要為大家詳細介紹了Python實現(xiàn)Kmeans聚類算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python基于list的append和pop方法實現(xiàn)堆棧與隊列功能示例

    Python基于list的append和pop方法實現(xiàn)堆棧與隊列功能示例

    這篇文章主要介紹了Python基于list的append和pop方法實現(xiàn)堆棧與隊列功能,結(jié)合實例形式分析了Python使用list定義及使用隊列的相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • Python自動化辦公之生成PDF報告詳解

    Python自動化辦公之生成PDF報告詳解

    因為工作需要經(jīng)常需要生成很多的PDF報告給客戶查看產(chǎn)品效果以及過程的講解,每次都需要按照一定的格式的編寫文檔并生成PDF報告,這樣重復(fù)性的工作實在太累。本文就來用Python實現(xiàn)自動生成PDF報告吧
    2023-03-03
  • Python中unittest的斷言方法詳解

    Python中unittest的斷言方法詳解

    大家好,本篇文章主要講的是Python中unittest的斷言方法詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 使用Python實現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    使用Python實現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    這篇文章主要為大家詳細介紹了使用Python實現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本的相關(guān)知識,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下
    2024-02-02
  • pycharm 如何縮進和SQL亂碼及SQL包含變量

    pycharm 如何縮進和SQL亂碼及SQL包含變量

    這篇文章主要介紹了pycharm 如何縮進和SQL亂碼及SQL包含變量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論