python 爬蟲百度圖片之詳情大圖

上次我們學會了怎么樣爬取百度的列表圖片胁出,速度很快甲锡,但是我覺得不滿意员寇,因為爬取的列表圖片都只是縮略圖片凡壤,點擊進入詳情才是高清圖片勺远。于是我繼續(xù)探索橙喘。

實現(xiàn)的步驟

點擊列表圖片,進入詳情頁面胶逢,我們可以獲取詳情頁的請求地址是
https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E6%98%8E%E6%98%9F&step_word=&hs=0&pn=2&spn=0&di=6752966330&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=2&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=371978350%2C138525231&os=3779051497%2C2039068748&simid=0%2C0&adpicid=0&lpn=0&ln=1785&fr=&fmq=1552974833622_R&fm=result&ic=&s=undefined&hd=&latest=&copyright=&se=&sme=&tab=0&width=&height=&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F015abf5a92a96aa801219231c32adc.jpg%401280w_1l_2o_100sh.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bzv55s_z%26e3Bv54_z%26e3BvgAzdH3Fo56hAzdH3FZM3YyMTIdMTI%3D_z%26e3Bip4s&gsm=0&rpstart=0&rpnum=0&islist=&querylist=&force=undefined
又臭又長厅瞎, 這個地址不能直接獲取,也是動態(tài)生成的初坠『汪ぃ可以發(fā)現(xiàn)一些參數(shù)可以在列表圖片的數(shù)據(jù)中獲取,列表圖片的數(shù)據(jù)如下碟刺,這樣把對應(yīng)的數(shù)據(jù)填上就可以了锁保,經(jīng)過我測試發(fā)現(xiàn)只有幾個參數(shù)是必要的。

image.png

檢查圖片,復制圖片地址


image.png

進入Network -> All爽柒,第一個就是詳情頁請求的響應(yīng)吴菠,


image.png

ctrl+f查找剛才復制的地址,注意浩村,地址可能不是完全一致做葵,如果找不到可以刪除一些參數(shù)再找一下,最后發(fā)現(xiàn)圖片地址也可以在js代碼中找到心墅,


image.png

這樣獲取詳情頁面響應(yīng)后酿矢,可以正則匹配或者解析html要查找圖片的地址。這樣可以就可以下載百度高清大圖了

實現(xiàn)的代碼

import requests
import re
import time
import os
import urllib.parse
from lxml import etree
import json
page_num=30
photo_dir="D:\\data\\pic\\face\\photo"


def getDetailImage(word):
    num=0
    url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord={0}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&word={0}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn={1}&rn="+str(page_num)+"&gsm=1e&1552975216767="
    while num<50:

        page_url=url.format(urllib.parse.quote(word),num*page_num)
        print(page_url)
        response=requests.get(page_url)
       
        regex = re.compile(r'\\(?![/u"])')
        json_data=json.loads(regex.sub(r"\\\\", response.text))#問題在于編碼中是\xa0之類的怎燥,當遇到有些 不用轉(zhuǎn)義的\http之類的瘫筐,則會出現(xiàn)以上錯誤
        for item in json_data['data']:
            try :
                params={
                    "word":word,
                    "di":item['di'],
                    "tn":"baiduimagedetail",
                    "cs":item['cs'],
                    "os":item['os'],
                }
                detail_url="http://image.baidu.com/search/detail"
                response=requests.get(detail_url,params=params)
                selector = etree.HTML(response.text)
                pic_url=selector.xpath("http://img[@id='hdFirstImgObj']/@src")[0]
                print(pic_url)
                name=pic_url.split('/')[-1]
                headers={
                    "Referer":page_url,
                }
            
                html=requests.get(pic_url,headers=headers)
                with open(os.path.join(word_dir,name),'wb')as f:
                    f.write(html.content)
            except:
                pass
            
        num=num+1
        

if __name__ == "__main__":
    word = input("請輸入搜索關(guān)鍵詞(可以是人名,地名等): ")
    word_dir=os.path.join(photo_dir,word)
    if not os.path.exists(word_dir):
        os.mkdir(word_dir)
    getDetailImage(word)
    
                


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铐姚,一起剝皮案震驚了整個濱河市严肪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谦屑,老刑警劉巖驳糯,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氢橙,居然都是意外死亡酝枢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門悍手,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘睦,“玉大人,你說我怎么就攤上這事坦康】⒏叮” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵滞欠,是天一觀的道長古胆。 經(jīng)常有香客問我,道長筛璧,這世上最難降的妖魔是什么逸绎? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮夭谤,結(jié)果婚禮上棺牧,老公的妹妹穿的比我還像新娘。我一直安慰自己朗儒,他們只是感情好颊乘,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布参淹。 她就那樣靜靜地躺著,像睡著了一般乏悄。 火紅的嫁衣襯著肌膚如雪承二。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天纲爸,我揣著相機與錄音亥鸠,去河邊找鬼。 笑死识啦,一個胖子當著我的面吹牛负蚊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播颓哮,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼家妆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了冕茅?” 一聲冷哼從身側(cè)響起伤极,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姨伤,沒想到半個月后哨坪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡乍楚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年当编,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒溪。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡忿偷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出臊泌,到底是詐尸還是另有隱情鲤桥,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布渠概,位于F島的核電站茶凳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏高氮。R本人自食惡果不足惜慧妄,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一顷牌、第九天 我趴在偏房一處隱蔽的房頂上張望剪芍。 院中可真熱鬧,春花似錦窟蓝、人聲如沸罪裹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽状共。三九已至套耕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間峡继,已是汗流浹背冯袍。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碾牌,地道東北人康愤。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像舶吗,于是被迫代替她去往敵國和親征冷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359