通過本案例解析ajax請求返回的信息下載圖片
爬取url地址:https://pic.sogou.com/pics?query=動物
分析:
分析url地址:每頁25條數(shù)據(jù),共計10頁
第1頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=0&xml_len=48&query=動物
第2頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=動物
第3頁:https://pic.sogou.com/napi/pc/searchList?mode=1&start=96&xml_len=48&query=動物
通過分析得出請求改變start參數(shù)就可以改變頁數(shù)
具體實現(xiàn)代碼:
import requests
import os
class ImageSougou(object):
url = 'https://pic.sogou.com/napi/pc/searchList'
save_dir = './sougou' # 文件保存的路徑
count = 0
# 初始化
def __init__(self, word):
self.word = word
self.dir_path = os.path.join(self.save_dir, word)
self.params = {
'query': word,
'mode': '1',
'start': '0',
'xml_len': 48,
}
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
# 創(chuàng)建保存圖片的文件夾
self.folder_exist(self.dir_path)
self.last_img_url = ''
self.current_page = 0
# 請求包含圖片url的網(wǎng)頁
def parse(self):
while True:
self.params['start'] = str(self.current_page*48)
response = requests.get(url=self.url, headers=self.headers, params=self.params)
response.encoding='utf8'
data = response.json()['data']['items']
if data:
for img_info in data:
img_url = img_info['picUrl']
self.download(img_url)
self.current_page += 1
else:
break
# 下載一張圖片
def download(self, img_url, img_type='jpg'):
self.count += 1
print('正在下載第%d張圖片...'%self.count, img_url)
try:
response = requests.get(img_url)
except Exception as e:
print('下載失敗:', img_url)
return None
img_name = img_url.split('/')[-1]
img_path = os.path.join(self.dir_path, img_name)
try:
with open(img_path, 'wb') as f:
f.write(response.content)
except Exception as e:
print('下載失敗:', img_url)
def folder_exist(self, dir_path):
'''
1. 作用:判斷文件夾路徑是否存在,不存在則創(chuàng)建
2. 參數(shù):dir_path:文件夾路徑
3. 返回值:None
'''
if not os.path.exists(dir_path):
os.makedirs(dir_path)
if __name__ == '__main__':
image = ImageSougou('動物')
image.parse()
審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86281 -
爬蟲
+關(guān)注
關(guān)注
0文章
83瀏覽量
7394
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
流速儀檢定車同步電機調(diào)速的瞬態(tài)過程分析
,但負載變化會引起同步轉(zhuǎn)速下功率角的擺動。針對不同性質(zhì)的負載對同步轉(zhuǎn)連的影響,通過分析同步電機瞬態(tài)過程特性,并結(jié)合反饋控制電路實驗,得出利用反饋控制提高同步電機瞬態(tài)過程特性的結(jié)論。
純分享帖,需要者可點
發(fā)表于 06-10 13:05
新能源汽車驅(qū)動電機專利信息分析
采用Thomson Innovation專利檢索分析平臺搜集整理驅(qū)動電機相關(guān)專利,通過分析國內(nèi)外驅(qū)動電機專利的 申請時間趨勢、國別分布、申請人排名、技術(shù)熱點分布以及國內(nèi)專利省市分布,了解國內(nèi)外驅(qū)動
發(fā)表于 03-21 13:39
格陸博科技榮登投中信息2024年度銳公司100榜單
近日,投中信息重磅發(fā)布2024年度“銳公司100榜單”,格陸博科技憑借在智能駕駛領(lǐng)域的突出表現(xiàn)和強勁發(fā)展勢頭,再度成功入選!這也是格陸博科技連續(xù)第二年獲此殊榮!
集成電路設(shè)計中靜態(tài)時序分析介紹
Analysis,STA)是集成電路設(shè)計中的一項關(guān)鍵技術(shù),它通過分析電路中的時序關(guān)系來驗證電路是否滿足設(shè)計的時序要求。與動態(tài)仿真不同,STA不需要模擬電路的實際運行過程,而是通過分析電路中的各個時鐘路徑、信號傳播延遲等信息來評
什么是爬電距離與電氣間隙?
義爬電距離,可形象理解為一螞蟻沿絕緣材料表面從一導(dǎo)電部件爬至另一導(dǎo)電部件所經(jīng)最短路徑。它涉及兩個導(dǎo)電部件間沿絕緣材料表面測量的最短空間距離,這一距離的設(shè)定需綜合考量電氣設(shè)備的額定電壓、絕緣材料的耐泄

中偉視界:礦山智能分析平臺通過分級管理報警信息,結(jié)合電話、短信通知,提高安全隱患響應(yīng)速度
隨著礦山行業(yè)對安全管理的要求不斷提高,智能分析平臺中的報警等級管理成為保障礦工生命安全的重要措施。通過電話與短信的有效結(jié)合,能夠快速、精準地響應(yīng)各類安全隱患,實現(xiàn)信息的及時傳遞。礦山企業(yè)應(yīng)重視標準化流程、選擇合適平臺和持續(xù)優(yōu)化反
中信建投建議關(guān)注端側(cè)AI模組機會
中信建投近日發(fā)布的研報指出,隨著OpenAI的ChatGPT功能全面接入蘋果設(shè)備,包括iPhone、iPad和Mac,端側(cè)AI產(chǎn)業(yè)的發(fā)展正在加速。這一趨勢為AI模組市場帶來了新的機遇。 據(jù)研報分析
TPA3110D2如何設(shè)置通過分壓設(shè)置PLIMT呢?
TPA3110D2的TINA模型,未找到GVDD,該如何設(shè)置通過分壓設(shè)置PLIMT呢
發(fā)表于 09-29 07:49
如何理解PCB設(shè)計的爬電距離?
一站式PCBA智造廠家今天為大家講講PCB設(shè)計爬電距離要求與走線規(guī)則有哪些?PCB設(shè)計爬電距離要求與走線規(guī)則。在PCB設(shè)計中,爬電距離和走線規(guī)則是關(guān)鍵的考慮因素,尤其是在高壓電路和高頻電路的設(shè)計中
QFN爬錫不好如何解決?—SMT錫膏
QFN封裝的芯片IC,側(cè)面引腳爬錫是個大難題,經(jīng)常會遇到一些客戶反饋:qfn爬錫不好怎么解決?qfn芯片引腳標準上錫高度如何確定?qfn側(cè)面不爬錫?下面由深圳佳金源錫膏廠家來講解一下:一、QFN錫膏

爬電距離是根據(jù)什么確定的
爬電距離(Creepage Distance)是指在電氣設(shè)備中,兩個導(dǎo)體之間沿絕緣材料表面的距離。它是一個重要的電氣參數(shù),用于評估電氣設(shè)備在正常工作和故障條件下的絕緣性能。爬電距離的確定涉及到多個
爬電距離用什么檢測設(shè)備
爬電距離是指在電氣設(shè)備中,不同電位的導(dǎo)體之間,通過絕緣材料隔離的最短距離。爬電距離的檢測對于確保電氣設(shè)備的安全運行至關(guān)重要。本文將介紹爬電距離的檢測設(shè)備及其使用方法。 一、
爬電距離與電壓的對應(yīng)關(guān)系
爬電距離(Creepage Distance)是電氣設(shè)備中的一個重要概念,它指的是在絕緣材料表面,沿著絕緣體表面或邊緣,從帶電部分到接地部分或不同電位部分之間的最短距離。爬電距離的大小直接影響
評論