爬取url地址:https://pic.sogou.com/pics?query=動物
分析:
分析url地址:每頁25條數據,共計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參數就可以改變頁數
具體實現代碼:
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',
}
# 創建保存圖片的文件夾
self.folder_exist(self.dir_path)
self.last_img_url = ''
self.current_page = 0
# 請求包含圖片url的網頁
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. 作用:判斷文件夾路徑是否存在,不存在則創建
2. 參數:dir_path:文件夾路徑
3. 返回值:None
'''
if not os.path.exists(dir_path):
os.makedirs(dir_path)
if __name__ == '__main__':
image = ImageSougou('動物')
image.parse()
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
python
+關注
關注
56文章
4797瀏覽量
84688 -
爬蟲
+關注
關注
0文章
82瀏覽量
6880
發布評論請先 登錄
相關推薦
中偉視界:礦山智能分析平臺通過分級管理報警信息,結合電話、短信通知,提高安全隱患響應速度
隨著礦山行業對安全管理的要求不斷提高,智能分析平臺中的報警等級管理成為保障礦工生命安全的重要措施。通過電話與短信的有效結合,能夠快速、精準地響應各類安全隱患,實現信息的及時傳遞。礦山企業應重視標準化流程、選擇合適平臺和持續優化反
中信建投建議關注端側AI模組機會
中信建投近日發布的研報指出,隨著OpenAI的ChatGPT功能全面接入蘋果設備,包括iPhone、iPad和Mac,端側AI產業的發展正在加速。這一趨勢為AI模組市場帶來了新的機遇。 據研報分析
如何理解PCB設計的爬電距離?
一站式PCBA智造廠家今天為大家講講PCB設計爬電距離要求與走線規則有哪些?PCB設計爬電距離要求與走線規則。在PCB設計中,爬電距離和走線規則是關鍵的考慮因素,尤其是在高壓電路和高頻電路的設計中
QFN爬錫不好如何解決?—SMT錫膏
QFN封裝的芯片IC,側面引腳爬錫是個大難題,經常會遇到一些客戶反饋:qfn爬錫不好怎么解決?qfn芯片引腳標準上錫高度如何確定?qfn側面不爬錫?下面由深圳佳金源錫膏廠家來講解一下:一、QFN錫膏
爬電距離是根據什么確定的
爬電距離(Creepage Distance)是指在電氣設備中,兩個導體之間沿絕緣材料表面的距離。它是一個重要的電氣參數,用于評估電氣設備在正常工作和故障條件下的絕緣性能。爬電距離的確定涉及到多個
爬電距離用什么檢測設備
爬電距離是指在電氣設備中,不同電位的導體之間,通過絕緣材料隔離的最短距離。爬電距離的檢測對于確保電氣設備的安全運行至關重要。本文將介紹爬電距離的檢測設備及其使用方法。 一、
爬電距離與電壓的對應關系
爬電距離(Creepage Distance)是電氣設備中的一個重要概念,它指的是在絕緣材料表面,沿著絕緣體表面或邊緣,從帶電部分到接地部分或不同電位部分之間的最短距離。爬電距離的大小直接影響
鴻蒙HarmonyOS引用圖片的方法
前言 Image通過調用接口來創建,接口調用形式如下: ? Image(src: string | Resource | media.PixelMap) ? 該接口通過圖片數據源獲取圖片
評論