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

Python抓取今日頭條街拍圖片數(shù)據(jù)

 更新時(shí)間:2022年01月05日 09:23:25   作者:BoBo yeah  
大家好,本篇文章主要講的是Python抓取今日頭條街拍圖片數(shù)據(jù),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

(1)抓取今日頭條街拍圖片

在這里插入圖片描述

(2)分析今日頭條街拍圖片結(jié)構(gòu)

在這里插入圖片描述

在這里插入圖片描述

keyword: 街拍
pd: atlas
dvpf: pc
aid: 4916
page_num: 1
search_json: {"from_search_id":"20220104115420010212192151532E8188","origin_keyword":"街拍","image_keyword":"街拍"}
rawJSON: 1
search_id: 202201041159040101501341671A4749C4
可以找到規(guī)律,page_num從1開始累加,其他參數(shù)不變

(3)按功能不同編寫不同方法組織代碼

獲取網(wǎng)頁json格式數(shù)據(jù)

def get_page(page_num):
    global headers
    headers = {
        'Host': 'so.toutiao.com',
        #'Referer': 'https://so.toutiao.com/search?keyword=%E8%A1%97%E6%8B%8D&pd=atlas&dvpf=pc&aid=4916&page_num=0&search_json={%22from_search_id%22:%22202112272022060101510440283EE83D67%22,%22origin_keyword%22:%22%E8%A1%97%E6%8B%8D%22,%22image_keyword%22:%22%E8%A1%97%E6%8B%8D%22}',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
        'X-Requested-With': 'XMLHttpRequest',
        'Cookie': 'msToken=S0DFBkZ9hmyLOGYd3_QjhhXgrm38qTyOITnkNb0t_oavfbVxuYV1JZ0tT5hLgswSfmZLFD6c2lONm_5TomUQXVXjen7CIxM2AGwbhHRYKjhg; _S_DPR=1.5; _S_IPAD=0; MONITOR_WEB_ID=7046351002275317255; ttwid=1%7C0YdWalNdIiSpIk3CvvHwV25U8drq3QAj08E8QOApXhs%7C1640607595%7C720e971d353416921df127996ed708931b4ae28a0a8691a5466347697e581ce8; _S_WIN_WH=262_623'
    }
    params = {
        'keyword': '街拍',
        'pd': 'atlas',
        'dvpf': 'pc',
        'aid': '4916',
        'page_num': page_num,
        'search_json': '%7B%22from_search_id%22%3A%22202112272022060101510440283EE83D67%22%2C%22origin_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%2C%22image_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%7D',
        'rawJSON': 1,
        'search_id': '2021122721183101015104402851E3883D'
    }
    url = 'https://so.toutiao.com/search?' + urlencode(params)
    print(url)
    try:
        response=requests.get(url,headers=headers,params=params)
        if response.status_code == 200:
        #if response.content:
            #print(response.json())
            return response.json()
    except requests.ConnectionError:
        return None

從json格式數(shù)據(jù)提取街拍圖片

def get_images(json):
    images = json.get('rawData').get('data')
    for image in images:
        link = image.get('img_url')
        yield link

將街拍圖片以其md5碼命名并保存圖片

實(shí)現(xiàn)一個(gè)保存圖片的方法 save_image(),其中 item 就是前面 get_images() 方法返回的一個(gè)字典。在該方法中,首先根據(jù) item 的 title 來創(chuàng)建文件夾,然后請求這個(gè)圖片鏈接,獲取圖片的二進(jìn)制數(shù)據(jù),以二進(jìn)制的形式寫入文件。圖片的名稱可以使用其內(nèi)容的 MD5 值,這樣可以去除重復(fù)。相關(guān)代碼如下:

def save_image(link):
    data = requests.get(link).content
    with open(f'./image/{md5(data).hexdigest()}.jpg', 'wb')as f:#使用data的md5碼作為圖片名
        f.write(data)

main()調(diào)用其他函數(shù)

def main(page_num):
    json = get_page(page_num)
    for link in get_images(json):
        #print(link)
        save_image(link)

(4)抓取20page今日頭條街拍圖片數(shù)據(jù)

這里定義了分頁的起始頁數(shù)和終止頁數(shù),分別為 GROUP_START 和 GROUP_END,還利用了多線程的線程池,調(diào)用其 map() 方法實(shí)現(xiàn)多線程下載。

if __name__ == '__main__':
    GROUP_START = 1
    GROUP_END = 20
    pool = Pool()
    groups = ([x for x in range(GROUP_START, GROUP_END + 1)])
    #print(groups)
    pool.map(main, groups)
    pool.close()
    pool.join()
import requests
from urllib.parse import urlencode
from hashlib import md5
from multiprocessing.pool import Pool
def get_page(page_num):
    global headers
    headers = {
        'Host': 'so.toutiao.com',
        #'Referer': 'https://so.toutiao.com/search?keyword=%E8%A1%97%E6%8B%8D&pd=atlas&dvpf=pc&aid=4916&page_num=0&search_json={%22from_search_id%22:%22202112272022060101510440283EE83D67%22,%22origin_keyword%22:%22%E8%A1%97%E6%8B%8D%22,%22image_keyword%22:%22%E8%A1%97%E6%8B%8D%22}',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
        'X-Requested-With': 'XMLHttpRequest',
        'Cookie': 'msToken=S0DFBkZ9hmyLOGYd3_QjhhXgrm38qTyOITnkNb0t_oavfbVxuYV1JZ0tT5hLgswSfmZLFD6c2lONm_5TomUQXVXjen7CIxM2AGwbhHRYKjhg; _S_DPR=1.5; _S_IPAD=0; MONITOR_WEB_ID=7046351002275317255; ttwid=1%7C0YdWalNdIiSpIk3CvvHwV25U8drq3QAj08E8QOApXhs%7C1640607595%7C720e971d353416921df127996ed708931b4ae28a0a8691a5466347697e581ce8; _S_WIN_WH=262_623'
    }
    params = {
        'keyword': '街拍',
        'pd': 'atlas',
        'dvpf': 'pc',
        'aid': '4916',
        'page_num': page_num,
        'search_json': '%7B%22from_search_id%22%3A%22202112272022060101510440283EE83D67%22%2C%22origin_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%2C%22image_keyword%22%3A%22%E8%A1%97%E6%8B%8D%22%7D',
        'rawJSON': 1,
        'search_id': '2021122721183101015104402851E3883D'
    }
    url = 'https://so.toutiao.com/search?' + urlencode(params)
    print(url)
    try:
        response=requests.get(url,headers=headers,params=params)
        if response.status_code == 200:
        #if response.content:
            #print(response.json())
            return response.json()
    except requests.ConnectionError:
        return None

def get_images(json):
    images = json.get('rawData').get('data')
    for image in images:
        link = image.get('img_url')
        yield link


def save_image(link):
    data = requests.get(link).content
    with open(f'./image/{md5(data).hexdigest()}.jpg', 'wb')as f:#使用data的md5碼作為圖片名
        f.write(data)




def main(page_num):
    json = get_page(page_num)
    for link in get_images(json):
        #print(link)
        save_image(link)




if __name__ == '__main__':
    GROUP_START = 1
    GROUP_END = 20
    pool = Pool()
    groups = ([x for x in range(GROUP_START, GROUP_END + 1)])
    #print(groups)
    pool.map(main, groups)
    pool.close()
    pool.join()


在這里插入圖片描述

 到此這篇關(guān)于Python抓取今日頭條街拍圖片數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Python抓取今日頭條圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 異常處理的實(shí)例詳解

    Python 異常處理的實(shí)例詳解

    這篇文章主要介紹了Python 異常處理的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家掌握Python 異常的知識(shí),需要的朋友可以參考下
    2017-09-09
  • python性能測試工具locust的使用

    python性能測試工具locust的使用

    這篇文章主要介紹了python性能測試工具locust的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化

    python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化

    在圖像處理中,直方圖是非常重要,也是非常有用的一個(gè)處理要素。這篇文章主要介紹了python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python 如何引入同級(jí)包和模塊

    Python 如何引入同級(jí)包和模塊

    這篇文章主要介紹了Python 如何引入同級(jí)包和模塊,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python如何刪除文件、目錄

    python如何刪除文件、目錄

    在本篇文章里小編給大家整理的是關(guān)于python刪除文件、目錄的方法,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • pytorch GPU和CPU模型相互加載方式

    pytorch GPU和CPU模型相互加載方式

    在PyTorch中,保存和加載模型有兩種主要方式:直接保存整個(gè)模型結(jié)構(gòu)加權(quán)重,或者只保存模型的參數(shù),直接保存整個(gè)模型的方法簡單,但不夠靈活,且可能存在模型結(jié)構(gòu)不一致的風(fēng)險(xiǎn),推薦的做法是只保存模型參數(shù),這種方法需要在加載前定義與原模型結(jié)構(gòu)相同的模型
    2024-09-09
  • python實(shí)現(xiàn)計(jì)算倒數(shù)的方法

    python實(shí)現(xiàn)計(jì)算倒數(shù)的方法

    這篇文章主要介紹了python實(shí)現(xiàn)計(jì)算倒數(shù)的方法,涉及Python針對數(shù)學(xué)運(yùn)算操作的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • python函數(shù)返回多個(gè)值的示例方法

    python函數(shù)返回多個(gè)值的示例方法

    這篇文章主要介紹了python函數(shù)返回多個(gè)值的方法,大家參考使用
    2013-12-12
  • Python中淺拷貝的四種實(shí)現(xiàn)方法小結(jié)

    Python中淺拷貝的四種實(shí)現(xiàn)方法小結(jié)

    本文主要介紹了Python中淺拷貝的四種實(shí)現(xiàn)方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • python導(dǎo)出chrome書簽到markdown文件的實(shí)例代碼

    python導(dǎo)出chrome書簽到markdown文件的實(shí)例代碼

    python導(dǎo)出chrome書簽到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后輸出到文件即可。下面給大家分享實(shí)例代碼,需要的朋友參考下
    2017-12-12

最新評(píng)論

佳木斯市| 夏津县| 新乡县| 镇巴县| 新平| 盖州市| 蒲城县| 海宁市| 乌鲁木齐市| 乐至县| 万宁市| 梅河口市| 曲麻莱县| 睢宁县| 巢湖市| 闽清县| 嘉峪关市| 历史| 平果县| 桃园县| 黑河市| 博罗县| 汕尾市| 景德镇市| 桃江县| 兰坪| 松溪县| 沾益县| 凤庆县| 盐津县| 稻城县| 中江县| 特克斯县| 青海省| 石首市| 泸溪县| 健康| 卢湾区| 伊川县| 油尖旺区| 永安市|