色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何爬取百度圖片的內容

劉姿婷2年前25瀏覽0評論

如何爬取百度圖片的內容?

這和緩存沒有什么關系,百度圖片的信息是動態加載的,在一個json文件中,需要抓包分析,解析這個文件才能提取到圖片的url進行下載,下面我大概介紹一下如何抓取百度圖片url信息并進行下載,實驗環境win7+python3.6+pycharm,就是兩個函數,很簡單,先貼源碼吧,如下:

import requests

import json

import time

def getImageInfo():

'''獲取圖片url信息'''

image_urls=[] # 存儲圖片url信息

url='http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&word=風景圖片大全&pn=60&rn=30'

response=requests.get(url=url) # 請求json文件

response.encoding='utf-8' # 設置編碼

data=json.loads(response.text).get('data') # 加載json文件

for item in data: # 獲取圖片下載url信息

if item.get('replaceUrl') and len(item.get('replaceUrl'))>1:

image_url=item.get('replaceUrl')[1].get('ObjURL') # 得到下載url

image_urls.append(image_url) # 插入image_urls中

return image_urls

def downloadImage():

'''下載圖片'''

image_urls=getImageInfo() # 獲取圖片url信息

for i in range(len(image_urls)):

try:

# 成功下載

content=requests.get(image_urls[i]).content # 獲取圖片(二進制信息)

image_file=open(r'F:\picture\baidu\%d.jpg' % (i+1),'wb') #創建jpg文件

image_file.write(content) #寫入文件

image_file.close() #關閉文件

print('第%d張圖片下載成功:%s' % (i+1,image_urls[i])) # 打印下載信息

time.sleep(1) # 暫停1秒,防止被識別

except Exception as e:

# 失敗下載

print('第%d張圖片下載失敗: %s' % (i+1, image_urls[i])) # 打印下載信息

print(e) # 打印異常信息

continue

if __name__=="__main__":

'''主函數'''

downloadImage()

下面介紹一下主要步驟:

1.抓包分析頁面。按F12調出開發者工具,刷新頁面,依次點擊"Network","XHR",和"Preview",就可看到動態加載的圖片信息,我這里以爬取百度圖片“風景圖片大全為例”,網址為http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1522202517144_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&hs=2&word=風景圖片大全&f=3&oq=風景圖片大全&rsp=0,如下:

json文件的信息我們可以在開發者工具中看到,以下是json中的圖片信息,我們需要對這些數據進行提?。?/p>

對應的json文件url信息可以直接在"Headers"查看到,如圖:

2.下面我們就可以對json文件進行解析了。這里注意的是,url中并不是所有參數都有用,這里只需提出tn=resultjson_com&ipn=rj&word=風景圖片大全&pn=60&rn=30這幾個參數就行,核心是提取到第二個"ObjURL"信息,這個是圖片位置所在,主要代碼如下:

3.圖片信息提取成功后,我們就可以進行圖片的下載了,這里比較簡單,主要用到requests這個包,就是基本的文件寫入操作,只不過是二進制的寫入,主要代碼如下:

程序運行結果如下,已經打印出下載信息:

對應的圖片也已經下載在"F:\picture\baidu"這個目錄下邊:

這里有些圖片由于url已失效,所以下載后不能顯示。

至此,我們就完成了百度圖片信息的提取以及圖片的下載。整個過程來看,其實很簡單,就是抓包分析,獲取到json文件,然后解析,提取到自己需要的信息,最后就能進行圖片的下載,只要你有一定的python基礎,會基本python爬蟲,很快就能完成圖片信息的爬取和下載,網上也有很多這方面的資料,你可以搜一下,對你幫助一定很大,我這里不在贅述,希望以上分享的內容能對你有所幫助吧。

java get 爬蟲,如何爬取百度圖片的內容