用python實現(xiàn)爬取奧特曼圖片實例
爬取網址:http://www.ultramanclub.com/allultraman/
使用工具:pycharm,requests
進入網頁

打開開發(fā)者工具

點擊 Network

刷新網頁,獲取信息


其中的Request URL就是我們所爬取的網址
滑到最下有一個User-Agent,復制

向服務器發(fā)送請求

200意味著請求成功
使用 response.text 獲取文本數(shù)據

可以看到有些亂碼
使用encode轉換
import requests
url = 'http://www.ultramanclub.com/allultraman/'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36'
}
response = requests.get(url = url,headers=headers)
html = response.text
Html=html.encode('iso-8859-1').decode('gbk')
print(Html)
接下來開始爬取需要的數(shù)據
使用Xpath獲得網頁鏈接
要使用Xpath必須先導入parsel包
import requests
import parsel
def get_response(html_url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36'
}
response = requests.get(url = html_url,headers=headers)
return response
url = 'http://www.ultramanclub.com/allultraman/'
response = get_response(url)
html=response.text.encode('iso-8859-1').decode('gbk')
selector = parsel.Selector(html)
period_hrefs = selector.xpath('//div[@class="btn"]/a/@href') #獲取三個時代的網頁鏈接
for period_href in period_hrefs:
print(period_href.get())

可以看到網頁鏈接不完整,我們手動給它添加上去period_href = 'http://www.ultramanclub.com/allultraman/' + period_href.get()

進入其中一個網頁

跟之前的操作一樣,用Xpath獲取奧特曼的網頁信息
for period_href in period_hrefs:
period_ + period_href.get()
# print(period_href)
period_response = get_response(period_href).text
period_html = parsel.Selector(period_response)
lis = period_html.xpath('//div[@class="ultraheros-Contents_Generations"]/div/ul/li/a/@href')
for li in lis:
print(li.get())運行后同樣發(fā)現(xiàn)鏈接不完整

li = 'http://www.ultramanclub.com/allultraman/' + li.get().replace('./','')

拿到網址后繼續(xù)套娃操作,就可以拿到圖片數(shù)據

png_url = 'http://www.ultramanclub.com/allultraman/' + li_selector.xpath('//div[@class="left"]/figure/img/@src').get().replace('../','')

完整代碼
import requests
import parsel
import os
dirname = "奧特曼"
if not os.path.exists(dirname): #判斷是否存在名稱為奧特曼的文件夾,沒有就創(chuàng)建
os.mkdir(dirname)
def get_response(html_url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36'
}
response = requests.get(url = html_url,headers=headers)
return response
url = 'http://www.ultramanclub.com/allultraman/'
response = get_response(url)
html=response.text.encode('iso-8859-1').decode('gbk')
selector = parsel.Selector(html)
period_hrefs = selector.xpath('//div[@class="btn"]/a/@href') #獲取三個時代的網頁鏈接
for period_href in period_hrefs:
period_ + period_href.get()
period_html = get_response(period_href).text
period_selector = parsel.Selector(period_html)
lis = period_selector.xpath('//div[@class="ultraheros-Contents_Generations"]/div/ul/li/a/@href')
for li in lis:
li = 'http://www.ultramanclub.com/allultraman/' + li.get().replace('./','') #獲取每個奧特曼的網址
# print(li)
li_html = get_response(li).text
li_selector = parsel.Selector(li_html)
url = li_selector.xpath('//div[@class="left"]/figure/img/@src').get()
# print(url)
if url:
png_url = 'http://www.ultramanclub.com/allultraman/' + url.replace('.', '')
png_title =li_selector.xpath('//ul[@class="lists"]/li[3]/text()').get()
png_title = png_title.encode('iso-8859-1').decode('gbk')
# print(li,png_title)
png_content = get_response(png_url).content
with open(f'{dirname}\\{png_title}.png','wb') as f:
f.write(png_content)
print(png_title,'圖片下載完成')
else:
continue


當爬到 奈克斯特奧特曼的時候,就會返回None,調了半天,也沒搞懂,所以用if url:語句跳過了奈克斯特奧特曼,有沒有大佬知道原因
url = li_selector.xpath('//div[@class="left"]/figure/img/@src').get()到此這篇關于用python實現(xiàn)爬取奧特曼圖片實例的文章就介紹到這了,更多相關python爬取奧特曼圖片內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于Python中compile() 函數(shù)簡單實用示例詳解
這篇文章主要介紹了關于compile() 函數(shù)簡單實用示例,compile() 函數(shù)將一個字符串編譯為字節(jié)代碼,compile將代碼編譯為代碼對象,應用在代碼中可以提高效率,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-05-05
使用Python實現(xiàn)計算DICOM圖像兩點真實距離
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)計算DICOM圖像兩點真實距離,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11
Python數(shù)據分析numpy的Nan和Inf使用注意點詳解
這篇文章主要為大家介紹了Python數(shù)據分析numpy的Nan和Inf使用注意點,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
詳解解Django 多對多表關系的三種創(chuàng)建方式
本文主要介紹了詳解解Django 多對多表關系的三種創(chuàng)建方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-08-08
Django media static外部訪問Django中的圖片設置教程
這篇文章主要介紹了Django media static外部訪問Django中的圖片設置教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

