最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

網(wǎng)頁(yè)爬蟲(chóng)抓取百度圖片(網(wǎng)絡(luò )爬蟲(chóng)爬取百度圖片貓的圖片為案例演示(圖) )

優(yōu)采云 發(fā)布時(shí)間: 2022-03-15 00:00

  網(wǎng)頁(yè)爬蟲(chóng)抓取百度圖片(網(wǎng)絡(luò )爬蟲(chóng)爬取百度圖片貓的圖片為案例演示(圖)

)

  網(wǎng)絡(luò )爬蟲(chóng)主要分為4大板塊:

  分析具有明確目標的網(wǎng)頁(yè)結構,

  在網(wǎng)頁(yè)中查找信息的地址,

  抓取信息,

  保存信息

  以下以網(wǎng)絡(luò )爬蟲(chóng)抓取百度圖片貓的圖片為例進(jìn)行演示

  項目案例:

  爬取百度所有狗圖片網(wǎng)站

  步驟分析:第一步:明確目標,我們將百度的狗圖片作為目標爬取,分析網(wǎng)頁(yè)結構

  1、輸入以下網(wǎng)址

  ^00_1583X672&word=狗

  

  2、選擇下一頁(yè)時(shí),只有pn和gsm值發(fā)生了變化。

  

  

  到目前為止,我所知道的是:pn參數代表頁(yè)數; word參數自然是關(guān)鍵詞,需要轉換編碼格式。

  gsm 的值,隨意更改似乎沒(méi)有任何作用。有句話(huà)說(shuō)gsm:代表pn的十六進(jìn)制值

  3、可以拼接出頁(yè)面請求的URL,代碼如下

  import sys

import urllib

import requests

def getPage(keyword, page, n):

page = page * n

keyword = urllib.parse.quote(keyword, safe='/')

url_begin = "http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word="

url = url_begin + keyword + "&pn=" + str(page) + "&gsm=" + str(hex(page)) + "&ct=&ic=0&lm=-1&width=0&height=0"

return url

  第二步:在網(wǎng)頁(yè)中查找圖片地址

  1、右鍵查看網(wǎng)頁(yè)源代碼,分析JSON數據可以看到objURL字段代表原圖的下載路徑

  

  2、根據URL地址,獲取圖片地址的代碼為:

  def get_onepage_urls(onepageurl):

try:

html = requests.get(onepageurl).text

except Exception as e:

print(e)

pic_urls = []

return pic_urls

pic_urls = re.findall('"objURL":"(.*?)",', html, re.S)

return pic_urls

  三、爬取圖片并保存

  def down_pic(pic_urls):

"""給出圖片鏈接列表, 下載所有圖片"""

for i, pic_url in enumerate(pic_urls):

try:

pic = requests.get(pic_url, timeout=15)

string = 'data2/'+str(i + 1) + '.jpg'

with open(string, 'wb') as f:

f.write(pic.content)

print('成功下載第%s張圖片: %s' % (str(i + 1), str(pic_url)))

except Exception as e:

print('下載第%s張圖片時(shí)失敗: %s' % (str(i + 1), str(pic_url)))

print(e)

continue

  四、調用函數

  if __name__ == '__main__':

keyword = '狗' # 關(guān)鍵詞, 改為你想輸入的詞即可, 相當于在百度圖片里搜索一樣

page_begin = 0

page_number = 30

image_number = 3

all_pic_urls = []

while 1:

if page_begin > image_number:

break

print("第%d次請求數據", [page_begin])

url = getPage(keyword, page_begin, page_number)

onepage_urls = get_onepage_urls(url)

page_begin += 1

all_pic_urls.extend(onepage_urls)

down_pic(list(set(all_pic_urls)))

  

  

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区