最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python百行代碼實(shí)現(xiàn)漢服圈圖片爬取

 更新時(shí)間:2021年11月22日 17:25:29   作者:Python學(xué)習(xí)與數(shù)據(jù)挖掘  
這篇文章主要為大家介紹了使用python百行代碼來實(shí)現(xiàn)漢服圈的圖片爬取,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

平時(shí)旅游的時(shí)候,在旅游景區(qū)我們經(jīng)??梢钥吹酱└鞣N服飾去拍照的游客,也不會(huì)刻意多關(guān)注。前兩天瀏覽網(wǎng)頁無意看到一個(gè)網(wǎng)站,看到穿漢服的女孩是真的很好看。無論是工作需要還是創(chuàng)作文案,把這么漂亮的圖片來當(dāng)作素材都是一個(gè)很好的idea。有需要,我們就爬它,爬它,爬它!

話不多說,我們下面詳細(xì)介紹圖片爬取。

分析網(wǎng)站

網(wǎng)址如下:

https://www.aihanfu.com/zixun/tushang-1/

這是第一頁的網(wǎng)址,根據(jù)觀察,第二頁網(wǎng)址也就是上述網(wǎng)站序號(hào)1變成了2,依次類推,就可以訪問全部頁數(shù)。

在這里插入圖片描述

根據(jù)圖示,我們需要獲得每個(gè)子網(wǎng)站的鏈接,也就是href中網(wǎng)址,然后進(jìn)入每個(gè)網(wǎng)址,尋找圖片網(wǎng)址,在下載就行了。

子鏈接獲取

為了獲取上圖中的數(shù)據(jù),我們可以用soup或者re或者xpath等方法都可以,本文中小編使用xpath來定位,編寫定位函數(shù),獲得每個(gè)子網(wǎng)站鏈接,然后返回主函數(shù),這里使用了一個(gè)技巧,在for循環(huán)中,可以看看!

def get_menu(url, heades):
    """
    根據(jù)每一頁的網(wǎng)址
    獲得每個(gè)鏈接對(duì)應(yīng)的子網(wǎng)址
    params: url 網(wǎng)址
    """
    r = requests.get(url, headers=headers)
    if r.status_code == 200:
        r.encoding = r.apparent_encoding
        html = etree.HTML(r.text)
        html = etree.tostring(html)
        html = etree.fromstring(html)
        # 查找每個(gè)子網(wǎng)址對(duì)應(yīng)的鏈接, 然后返回
        children_url = html.xpath('//div[@class="news_list"]//article/figure/a/@href')
        for _ in children_url:
            yield _

獲取標(biāo)題和圖片地址

為了盡量多的采集數(shù)據(jù),我們把標(biāo)簽和圖片地址采集一下,當(dāng)然如果其他項(xiàng)目需要采集發(fā)布者和時(shí)間,也是可以做到多的,本篇就不再展開。

在這里插入圖片描述

我們點(diǎn)開一個(gè)網(wǎng)址鏈接,如上圖所示,可以發(fā)現(xiàn)標(biāo)題在head的節(jié)點(diǎn)里面,獲取標(biāo)題是為創(chuàng)建文件夾時(shí)使用。

代碼如下:

def get_page(url, headers):
    """
    根據(jù)子頁鏈接,獲得圖片地址,然后打包下載
    params: url 子網(wǎng)址
    """
    r = requests.get(url, headers=headers)
    if r.status_code == 200:
        r.encoding = r.apparent_encoding
        html = etree.HTML(r.text)
        html = etree.tostring(html)
        html = etree.fromstring(html)
        # 獲得標(biāo)題
        title = html.xpath(r'//*[@id="main_article"]/header/h1/text()')
        # 獲得圖片地址
        img = html.xpath(r'//div[@class="arc_body"]//figure/img/@src')
        # title 預(yù)處理 
        title = ''.join(title)
        title = re.sub(r'【|】', '', title)
        print(title)
        save_img(title, img, headers)

保存圖片

在翻轉(zhuǎn)每一頁時(shí)我們都需要把子鏈接對(duì)應(yīng)的圖片保存下來,此處需要注意對(duì)請(qǐng)求的狀態(tài)判斷、路徑判斷。

def save_img(title, img, headers):
    """
    根據(jù)標(biāo)題創(chuàng)建子文件夾
    下載所有的img鏈接,選擇更改質(zhì)量大小
    params:title : 標(biāo)題
    params:  img :  圖片地址
    """
    if not os.path.exists(title):
        os.mkdir(title)
    # 下載
    for i, j in enumerate(img):  # 遍歷該網(wǎng)址列表
        r = requests.get(j, headers=headers)
        if r.status_code == 200:
            with open(title + '//' + str(i) + '.png', 'wb') as fw:
                fw.write(r.content)
        print(title, '中的第', str(i), '張下載完成!')

主函數(shù)

if __name__ == '__main__':
    """ 
    一頁一頁查找
    params : None
    """
    path = '/Users/********/漢服/'
    if not os.path.exists(path):
        os.mkdir(path)
        os.chdir(path)
    else:
        os.chdir(path)
    # url = 'http://www.aihanfu.com/zixun/tushang-1/'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                             ' AppleWebKit/537.36 (KHTML, like Gecko)'
                             ' Chrome/81.0.4044.129 Safari/537.36'}
    for _ in range(1, 50):
        url = 'http://www.aihanfu.com/zixun/tushang-{}/'.format(_)
        for _ in get_menu(url, headers):
            get_page(_, headers)  # 獲得一頁

至此我們已經(jīng)完成了所有環(huán)節(jié),關(guān)于爬蟲的文章,小編已經(jīng)不止一次的介紹了,一方面是希望大家可以多多熟悉爬蟲技巧,另外一方面小編認(rèn)為爬蟲是數(shù)據(jù)分析、數(shù)據(jù)挖掘的基礎(chǔ)。沒有爬蟲獲取數(shù)據(jù),何來數(shù)據(jù)分析。

以上就是python百行代碼實(shí)現(xiàn)漢服圈圖片爬取的詳細(xì)內(nèi)容,更多關(guān)于python爬取漢服圈圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python3+PyQt5實(shí)現(xiàn)拖放功能

    python3+PyQt5實(shí)現(xiàn)拖放功能

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)拖放功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python實(shí)時(shí)獲取cmd的輸出

    Python實(shí)時(shí)獲取cmd的輸出

    本文給大家分享python實(shí)時(shí)獲取cmd的輸出,對(duì)python實(shí)時(shí)獲取輸出相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Python?BeautifulSoup4實(shí)現(xiàn)數(shù)據(jù)解析與提取

    Python?BeautifulSoup4實(shí)現(xiàn)數(shù)據(jù)解析與提取

    Beautiful?Soup是一個(gè)Python的庫,用于解析HTML和XML文檔,提供了方便的數(shù)據(jù)提取和操作功能,下面小編就來和大家詳細(xì)聊聊如何利用BeautifulSoup4實(shí)現(xiàn)數(shù)據(jù)解析與提取吧
    2023-10-10
  • django數(shù)據(jù)庫自動(dòng)重連的方法實(shí)例

    django數(shù)據(jù)庫自動(dòng)重連的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于django數(shù)據(jù)庫自動(dòng)重連的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python文件讀寫w+和r+區(qū)別解析

    Python文件讀寫w+和r+區(qū)別解析

    這篇文章主要介紹了Python文件讀寫w+和r+區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用

    Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用

    在構(gòu)建Web應(yīng)用時(shí),與數(shù)據(jù)庫的交互是必不可少的部分,本文主要介紹了Flask與數(shù)據(jù)庫的交互插件Flask-Sqlalchemy的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • json跨域調(diào)用python的方法詳解

    json跨域調(diào)用python的方法詳解

    這篇文章主要介紹了json跨域調(diào)用python的方法,結(jié)合實(shí)例形式分析了基于ajax的json調(diào)用及Python后臺(tái)處理技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Python StrEnum基本概念和使用場(chǎng)景分析

    Python StrEnum基本概念和使用場(chǎng)景分析

    StrEnum是Python枚舉家族的一個(gè)強(qiáng)大補(bǔ)充,特別適合處理字符串常量,它結(jié)合了枚舉的類型安全性和字符串的靈活性,使得在許多場(chǎng)景下的編程變得更加簡(jiǎn)潔和安全,本文將介紹StrEnum的基本概念和使用場(chǎng)景,并通過示例代碼來展示它的實(shí)際應(yīng)用,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方

    Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方

    這篇文章主要介紹了Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方,文章來自國(guó)內(nèi)知名的Python開發(fā)者felinx的博客,需要的朋友可以參考下
    2015-05-05
  • 詳解Python map函數(shù)及Python map()函數(shù)的用法

    詳解Python map函數(shù)及Python map()函數(shù)的用法

    map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。下面通過本文給大家介紹Python map函數(shù)及Python map()函數(shù)的用法,需要的朋友參考下吧
    2017-11-11

最新評(píng)論

旬阳县| 滦南县| 垦利县| 鄱阳县| 泰安市| 彭州市| 迁西县| 民和| 高碑店市| 尚志市| 景洪市| 莱州市| 新郑市| 富源县| 晋城| 义马市| 湘乡市| 甘肃省| 镇平县| 越西县| 民勤县| 寿阳县| 开原市| 南阳市| 开阳县| 思茅市| 改则县| 陆川县| 修水县| 原阳县| 定南县| 淮阳县| 广昌县| 东至县| 肃宁县| 岳池县| 友谊县| 贡嘎县| 许昌市| 华池县| 连城县|