欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

手把手帶你用python爬取小姐姐私房照

 更新時(shí)間:2021年08月24日 09:33:39   作者:退休的龍叔  
這篇文章主要介紹了用python如何爬取小姐姐私房照,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

如何用Python搞到小姐姐私房照

本文純技術(shù)角度出發(fā),教你如何用Python爬蟲獲取百度圖庫(kù)海量照片——技術(shù)無罪。

學(xué)會(huì)獲取小姐姐私房照同理可得也能獲取其他的照片,技術(shù)原理是一致的。

目標(biāo)站點(diǎn)

百度圖片使用關(guān)鍵字搜索 小姐姐私房照

https://image.baidu.com/

開發(fā)環(huán)境

  • 系統(tǒng):Windows10 64位
  • Python版本:Python3.6.5(Python3以上版本即可)
  • IDE:Pycharm(非必須,其實(shí)你完全可以記事本寫代碼)
  • 第三方庫(kù):requests、jsonpath

效果預(yù)覽

網(wǎng)頁(yè)私房照

在這里插入圖片描述

代碼爬取效果

在這里插入圖片描述

正式教程

一、第三方庫(kù)安裝

在確保你正確安裝了Python解釋器之后,我們還需要安裝幾個(gè)第三方庫(kù),命令如下**[在終端中安裝即可]**:

HTTP請(qǐng)求庫(kù):

pip3 install requests

JSON數(shù)據(jù)解析庫(kù):

pip3 install jsonpath

二、爬蟲的基本套路

  • 不管是爬取哪類網(wǎng)站,在爬蟲中基本都遵循以下的基本套路:

     請(qǐng)求數(shù)據(jù) → 獲取響應(yīng)內(nèi)容 → 解析內(nèi)容 → 保存數(shù)據(jù)

在這里插入圖片描述

  • 當(dāng)然,以上步驟是代碼的編寫思路,實(shí)際操作中應(yīng)該還要添加一個(gè)前置步驟,所以完整流程如下:

     分析目標(biāo)站點(diǎn) → 請(qǐng)求網(wǎng)站獲取數(shù)據(jù) → 解析內(nèi)容 → 保存數(shù)據(jù)

在這里插入圖片描述

分析目標(biāo)站點(diǎn)

快速的分析目標(biāo)站點(diǎn)就很容易發(fā)現(xiàn)百度圖庫(kù)的圖片資源是通過AJAX加載的,所以我們要請(qǐng)求的鏈接并非瀏覽器地址欄鏈接,而是ajax加載的數(shù)據(jù)包的資源路徑,如圖:
在這里插入圖片描述

那么問題來了,如何獲取到這些數(shù)據(jù)包的地址?其實(shí)很簡(jiǎn)單,如圖所示:

在這里插入圖片描述

請(qǐng)求網(wǎng)站獲取數(shù)據(jù)

編寫代碼請(qǐng)求資源,這里有一點(diǎn)需要注意:請(qǐng)求頭必須攜帶,否則有可能請(qǐng)求失敗導(dǎo)致報(bào)錯(cuò)。

import requests  # 導(dǎo)包

# 構(gòu)建請(qǐng)求頭,把爬蟲程序偽裝成正常的瀏覽器用戶
headers = {
    'sec-fetch-dest': 'image',
    'Host': 'image.baidu.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 Edg/89.0.774.50',
}
# 資源包的url鏈接
url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10913526997707526921&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%B0%8F%E5%A7%90%E5%A7%90%E7%A7%81%E6%88%BF%E7%85%A7&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=&hd=&latest=&copyright=&word=%E5%B0%8F%E5%A7%90%E5%A7%90%E7%A7%81%E6%88%BF%E7%85%A7&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=210&rn=30&gsm=d2&1616553658252='

# 構(gòu)建請(qǐng)求
response = requests.get(url,headers=headers)
# 查看狀態(tài)碼
print(response.status_code)
# 獲取原始數(shù)據(jù)
response.json()

解析數(shù)據(jù)

上述代碼最終獲取到的數(shù)據(jù)是json數(shù)據(jù),也就是我們Python中常說的字典,它長(zhǎng)這樣:

{
    "queryEnc":"%D0%A1%BD%E3%BD%E3%CB%BD%B7%BF%D5%D5",
    "queryExt":"小姐姐私房照",
    "listNum":758,
    "displayNum":8392,
    "gsm":"f0",
    "bdFmtDispNum":"約8,390",
    "bdSearchTime":"",
    "isNeedAsyncRequest":0,
    "bdIsClustered":"1",
    "data":[
        Object{...},   # 沒張私房照對(duì)應(yīng)的詳細(xì)信息,其中就有圖片的URL 
        Object{...},
        ···
}

既然它是一個(gè)字典,我們當(dāng)然是可以使用Python中的鍵值索引方式獲取到想要的數(shù)據(jù),但是此方法太笨,這里介紹一種更加高明的方式,使用jsonpath解析數(shù)據(jù)

# 這一行代碼便可以獲取到所有圖片的URL,返回的是一個(gè)列表,遍歷即可拿到每一個(gè)URL
imgs = jsonpath.jsonpath(json_data, '$..middleURL')

使用requests請(qǐng)求圖片URL,獲取圖片數(shù)據(jù)

image_data = requests.get(page_url).content

保存數(shù)據(jù)

使用Python中的文件對(duì)象,保存圖片,圖片名字使用時(shí)間戳命名,避免圖片重名

with open('imgs/' + datetime.now().strftime("%Y%m%d%H%M%S%f") + '.jpg', 'wb') as f:
     f.write(image_data)

寫在最后

到這整個(gè)兒爬蟲程序就寫完了。

當(dāng)然,當(dāng)前的這個(gè)只能爬取一個(gè)資源包中的數(shù)據(jù),要爬取多個(gè)資源包或者說全部資源包的數(shù)據(jù)也是很簡(jiǎn)單的,只需要分析分析資源包的URL變化規(guī)律就不難發(fā)現(xiàn)其中的某個(gè)關(guān)鍵字變化,靈活改變?cè)撽P(guān)鍵字就可以不斷爬取。

文章正文到這里已經(jīng)結(jié)束了,只是想感謝一些閱讀我文章的人。

我退休后一直在學(xué)習(xí)如何寫文章,說實(shí)在的,每次我在后臺(tái)看到一些讀者的回應(yīng)就會(huì)覺得很欣慰,于是我想把我收藏的一些編程干貨貢獻(xiàn)給大家,回饋每一個(gè)讀者,希望能幫到你們。

到此這篇關(guān)于手把手帶你用python爬取小姐姐私房照的文章就介紹到這了,更多相關(guān)python爬取圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python在游戲中的熱更新實(shí)現(xiàn)

    Python在游戲中的熱更新實(shí)現(xiàn)

    本文主要介紹了Python在游戲中的熱更新實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 30秒學(xué)會(huì)30個(gè)超實(shí)用Python代碼片段【收藏版】

    30秒學(xué)會(huì)30個(gè)超實(shí)用Python代碼片段【收藏版】

    許多人在數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、web開發(fā)、腳本編寫和自動(dòng)化等領(lǐng)域中都會(huì)使用Python,它是一種十分流行的語(yǔ)言。本文將簡(jiǎn)要介紹30個(gè)簡(jiǎn)短的、且能在30秒內(nèi)掌握的代碼片段,感興趣的朋友一起看看吧
    2019-10-10
  • python中引用與復(fù)制用法實(shí)例分析

    python中引用與復(fù)制用法實(shí)例分析

    這篇文章主要介紹了python中引用與復(fù)制用法,以實(shí)例形式詳細(xì)分析了python中引用與復(fù)制的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • Pandas的Apply函數(shù)具體使用

    Pandas的Apply函數(shù)具體使用

    這篇文章主要介紹了Pandas的Apply函數(shù)具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python for循環(huán)remove同一個(gè)list過程解析

    python for循環(huán)remove同一個(gè)list過程解析

    這篇文章主要介紹了python for循環(huán)remove同一個(gè)list過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python操作Sqlite正確實(shí)現(xiàn)方法解析

    Python操作Sqlite正確實(shí)現(xiàn)方法解析

    我們今天將會(huì)在這篇文章中分步驟為大家詳細(xì)介紹一下有關(guān)Python操作Sqlite的相關(guān)應(yīng)用方式,希望大家可以從中獲得一些幫助
    2020-02-02
  • Pandas日期處理之生成工作日與節(jié)假日

    Pandas日期處理之生成工作日與節(jié)假日

    Python中的Pandas 提供了許多日期處理功能,使得處理時(shí)間序列數(shù)據(jù)變得容易。本文將介紹如何使用 Pandas 生成工作日和節(jié)假日,感興趣的小伙伴可以收藏一下
    2023-05-05
  • 分析Python中解析構(gòu)建數(shù)據(jù)知識(shí)

    分析Python中解析構(gòu)建數(shù)據(jù)知識(shí)

    本篇文章給大家講述一下Python中解析構(gòu)建數(shù)據(jù)知識(shí)的相關(guān)內(nèi)容,有需要的朋友跟著學(xué)習(xí)下。
    2018-01-01
  • python爬取數(shù)據(jù)中的headers和代理IP問題分析

    python爬取數(shù)據(jù)中的headers和代理IP問題分析

    這篇文章主要為大家介紹了python爬取數(shù)據(jù)中的headers和代理IP問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python入門教程(三十九)Python的NumPy安裝與入門

    Python入門教程(三十九)Python的NumPy安裝與入門

    這篇文章主要介紹了Python入門教程(三十九)Python的NumPy安裝與入門,NumPy 是一個(gè)Python包,它是一個(gè)由多維數(shù)組對(duì)象和用于處理數(shù)組的例程集合組成的庫(kù),,需要的朋友可以參考下
    2023-05-05

最新評(píng)論