<strike id="g3zqm"></strike>

      <cite id="g3zqm"></cite>

        <tr id="g3zqm"><center id="g3zqm"></center></tr>
        <pre id="g3zqm"><sup id="g3zqm"></sup></pre>
        <li id="g3zqm"></li>
      1. 少妇高潮激情一区二区三,免费av深夜在线观看,亚洲狼人久久伊人久久伊,久久精品人人做人人爽电影蜜月,黄色特级片一区二区三区,欧美日韩在线亚洲二区综二,极品少妇无套内射视频,日本极品少妇videossexhd

        PYTHON爬蟲——必應(yīng)圖片關(guān)鍵詞爬取

        2018-8-31    seo達(dá)人

        如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

        圖片三個(gè)網(wǎng)站的圖片搜索結(jié)果進(jìn)行爬取和下載。 
        首先通過爬蟲過程中遇到的問題,總結(jié)如下: 
        1、一次頁(yè)面加載的圖片數(shù)量各個(gè)網(wǎng)站是不定的,每翻一頁(yè)就會(huì)刷新一次,對(duì)于數(shù)據(jù)量大的爬蟲幾乎都需要用到翻頁(yè)功能,有如下兩種方式: 
        1)通過網(wǎng)站上的網(wǎng)址進(jìn)行刷新,例如必應(yīng)圖片:

        url = 'http://cn.bing.com/images/async?q={0}&first={1}&count=35&relp=35&lostate=r
        &mmasync=1&dgState=x*175_y*848_h*199_c*1_i*106_r*0'
            
        • 1
        • 2

        2)通過selenium來實(shí)現(xiàn)模擬鼠標(biāo)操作來進(jìn)行翻頁(yè),這一點(diǎn)會(huì)在Google圖片爬取的時(shí)候進(jìn)行講解。 
        2、每個(gè)網(wǎng)站應(yīng)用的圖片加載技術(shù)都不一樣,對(duì)于靜態(tài)加載的網(wǎng)站爬取圖片非常容易,因?yàn)槊繌垐D片的url都直接顯示在網(wǎng)頁(yè)源碼中,找到每張圖片對(duì)應(yīng)的url即可使用urlretrieve()進(jìn)行下載。然而對(duì)于動(dòng)態(tài)加載的網(wǎng)站就比較復(fù)雜,需要具體問題具體分析,例如google圖片每次就會(huì)加載35張圖片(只能得到35張圖片的url),當(dāng)滾動(dòng)一次后網(wǎng)頁(yè)并不刷新但是會(huì)再次加載一批圖片,與前面加載完成的都一起顯示在網(wǎng)頁(yè)源碼中。對(duì)于動(dòng)態(tài)加載的網(wǎng)站我推薦使用selenium庫(kù)來爬取。

        對(duì)于爬取圖片的流程基本如下(對(duì)于可以通過網(wǎng)址實(shí)現(xiàn)翻頁(yè)或者無需翻頁(yè)的網(wǎng)站): 
        1. 找到你需要爬取圖片的網(wǎng)站。(以必應(yīng)為例)

        這里寫圖片描述
        2. 使用google元素檢查(其他的沒用過不做介紹)來查看網(wǎng)頁(yè)源碼。

        這里寫圖片描述
        3. 使用左上角的元素檢查來找到對(duì)應(yīng)圖片的代碼。

        這里寫圖片描述
        4. 通過觀察找到翻頁(yè)的規(guī)律(有些網(wǎng)站的動(dòng)態(tài)加載是完全看不出來的,這種方法不推薦)

        這里寫圖片描述
        從圖中可以看到標(biāo)簽div,class=’dgControl hover’中的data-nexturl的內(nèi)容隨著我們滾動(dòng)頁(yè)面翻頁(yè)first會(huì)一直改變,q=二進(jìn)制碼即我們關(guān)鍵字的二進(jìn)制表示形式。加上前綴之后由此我們才得到了我們要用的url。 
        5. 我們將網(wǎng)頁(yè)的源碼放進(jìn)BeautifulSoup中,代碼如下:

        url = 'http://cn.bing.com/images/async?q={0}&first={1}&count=35&relp=35&lostate=r&mmasync=1&dgState=x*175_y*848_h*199_c*1_i*106_r*0' agent = {'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.165063 Safari/537.36 AppEngine-Google."}
        page1 = urllib.request.Request(url.format(InputData, i*35+1), headers=agent)
        page = urllib.request.urlopen(page1)
        soup = BeautifulSoup(page.read(), 'html.parser')
            
        • 1
        • 2
        • 3
        • 4
        • 5

        我們得到的soup是一個(gè)class ‘bs4.BeautifulSoup’對(duì)象,可以直接對(duì)其進(jìn)行操作,具體內(nèi)容自行查找。 
        首先選取我們需要的url所在的class,如下圖: 
        這里寫圖片描述
        波浪線是我們需要的url。 
        我們由下面的代碼得到我們需要的url:

        if not os.path.exists("./" + word):#創(chuàng)建文件夾 os.mkdir('./' + word) for StepOne in soup.select('.mimg'):
            link=StepOne.attrs['src']#將得到的<class 'bs4.element.Tag'>轉(zhuǎn)化為字典形式并取src對(duì)應(yīng)的value。 count = len(os.listdir('./' + word)) + 1 SaveImage(link,word,count)#調(diào)用函數(shù)保存得到的圖片。
            
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7

        最后調(diào)用urlretrieve()函數(shù)下載我們得到的圖片url,代碼如下:

         try:
                time.sleep(0.2)
                urllib.request.urlretrieve(link,'./'+InputData+'/'+str(count)+'.jpg') except urllib.error.HTTPError as urllib_err:
                print(urllib_err) except Exception as err:
                time.sleep(1)
                print(err)
                print("產(chǎn)生未知錯(cuò)誤,放棄保存") else:
                print("圖+1,已有" + str(count) + "張圖")
            
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11

        這里需要強(qiáng)調(diào)是像前面的打開網(wǎng)址和現(xiàn)在的下載圖片都需要使用try except進(jìn)行錯(cuò)誤測(cè)試,否則出錯(cuò)時(shí)程序很容易崩潰,大大浪費(fèi)了數(shù)據(jù)采集的時(shí)間。 
        以上就是對(duì)單個(gè)頁(yè)面進(jìn)行數(shù)據(jù)采集的流程,緊接著改變url中{1}進(jìn)行翻頁(yè)操作繼續(xù)采集下一頁(yè)。 
        數(shù)據(jù)采集結(jié)果如下: 
        這里寫圖片描述

        有問題請(qǐng)留言。 

        藍(lán)藍(lán)設(shè)計(jì)m.hengshangtqd.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 平面設(shè)計(jì)服務(wù)

        日歷

        鏈接

        個(gè)人資料

        存檔

        主站蜘蛛池模板: 午夜精品久久久久久久爽| 四房播播成人网| 国产福利精品导航网址| 欧美精品久久96人妻无码| 国产草草影院ccyycom| 亚洲一区二区中文字幕| 亚洲AV旡码高清在线观看| 综合久久国产九一剧情麻豆| 亚洲精品国产丝袜久久| 无码熟妇人妻AV在线影片最多| 天天做日日做天天添天天欢公交车 | 国产绿帽在线视频看| 中文字幕无码av激情不卡| 亚洲久久色成人一二三区| 日韩成人无码视频| 欧美 变态 另类 人妖| 欧美亚洲无码| 亚洲国产aⅴ综合网一区| 午夜免费无码福利视频麻豆| 国产综合视频一区二区三区 | 色情一区二区三区免费看 | 亚洲天堂视频在线播放| 精品婷婷色一区二区三区| 蜜桃一区二区三区免费看| 午夜福利欧美| 国产精品色内内在线播放| 精品人妻中文字幕色站| 日韩亚洲AV最新在线观看| 亚洲丁香五月激情综合| 日韩精品国产另类专区| 免费看黄色亚洲一区久久| 国产网友愉拍精品视频手机| 丝袜亚洲中文字幕久久| 亚洲色拍偷| 肏屄的视频| 激情小说区| 国产精品成人无码久久久| 国产不卡精品视频男人的天堂| 光棍天堂在线手机播放免费| 超碰福利导航| 欧美va|