亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python爬取堆糖帥哥照片

系統 2037 0
            
              import requests
import urllib.parse
import threading

#當線程達到十個時就鎖住
thread_lock = threading.BoundedSemaphore(value=10)
#function:獲得json數據
#url:api
#page:返回json數據
def get_page(url):
    #requests.get自帶json.load 用于獲取 page信息
    page = requests.get(url)
    #獲取url的內容
    page = page.content
    #將字節轉換成utf-8格式
    page = page.decode('utf-8')
    return page

#function:獲得所有頁面的api
#label為你要搜索的關鍵字
#獲取所有頁面pages中的鏈接
def pages_from_duitang(label):
    #創建pages 存放獲取到的鏈接并返回
    pages = []
    url = "https://www.duitang.com/napi/blog/list/by_search/?kw={}&start={}&limit=1000"
    for index in range(0,3600,50):
        #兩個變量分別替換兩個占位符{}
        u = url.format(label,index)
        page = get_page(u)
        pages.append(page)
    return pages
#function:獲取單個圖片地址
#page是從get_page請求回來的頁面信息
#startpage是開始匹配的部分
#endpart是字符串末尾匹配的部分
def findall_in_page(page,startpage,endpart):
    #all_string存放所有的照片地址
    all_string = []
    end = 0
    while page.find(startpage,end)!=-1:
        #start為字符串開始的地址 ,從第end個字符開始查找,查找到第一個出現startpage的地址賦值給start
        start = page.find(startpage,end)+len(startpage)
        #從字符串第start位置開始查找,查到到第一個endpart字符串的位置
        end = page.find(endpart,start)
        #獲得從start開始到end為止的字符串 賦值給變量 string
        string = page[start:end]
        #存入列表中
        all_string.append(string)
    return all_string

#function:獲取所有的圖片地址
#pages:從url請求的所有的頁面信息
def pic_urls_from_pages(pages):
    #print("啊哈,請給我一杯忘情水")
    #創建列表,存放所有的圖片地址
    pic_urls = []
    #遍歷所有的頁面信息
    for page in pages:
        #獲取一個的圖片地址 賦值給urls
        urls = findall_in_page(page,'path":"','"')
        #print("urls is the {}".format(urls))
        #將獲取到的單個圖片地址添加到列表pic_urls中
        pic_urls.extend(urls)

    return pic_urls

#function:下載圖片并命名
#url:下載圖片的地址
#n:照片的名字
def download_pics(url,n):
    r = requests.get(url)
    #print("我是r[]",r)
    #生成圖片的相對地址
    path = 'D:\\CodeProject\\pythonProject\\pics\\' + str(n) + '.jpg'
    #以可讀寫的方式打開二進制文件path
    with open(path,'wb') as f:
        #將r的內容讀入到path的文件中
        f.write(r.content)
    #下載完畢,解鎖
    thread_lock.release()

#funtion:主函數
#label:要爬取的關鍵字
def main(label):
    print(label)
    #將關鍵字傳入pages_from_duitang中,獲得對應關鍵字的所有api 賦值給pages
    pages = pages_from_duitang(label)
    #將包含所有的api的pages傳入到pic_urls_from_pages中,獲得所有的圖片地址 賦值給pic_urls
    pic_urls = pic_urls_from_pages(pages)

    n = 0
    #遍歷所有的圖片地址,傳入到下載函數中下載圖片
    for url in pic_urls:
        #n:待參數1:圖片的名稱
        n+=1
        print("正在下載第{}張圖片".format(n))
        #上鎖
        thread_lock.acquire()
        #url:待傳入的參數2
        t = threading.Thread(target=download_pics,args=(url,n))
        t.start()

main("帥哥")

            
          

Python爬取堆糖帥哥照片_第1張圖片

Python爬取堆糖帥哥照片_第2張圖片


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 看一级毛片一区二区三区免费 | 久久精品国产主播一区二区 | 久热亚洲 | 欧美日本综合一区二区三区 | 中文字幕天天躁夜夜狠狠综合 | 久久国产精品自在自线 | 欧美大吊视频 | 天天爱天天操 | 日日操夜夜骑 | 国产一级一片免费播放 | 国产尤物在线播放 | 黑丝毛片 | 国产极品白嫩美女在线观看看 | 不卡高清av手机在线观看 | 日韩 欧美 亚洲国产 | 久久久久免费观看 | 欧美啪啪小视频 | 久久黄色免费视频 | 欧美一区永久视频免费观看 | 国产在线观看91精品一区 | 99精品日韩 | 99热播| 欧美一级毛片特黄黄 | 啪啪毛片 | 欧美激情在线 | 一区二区中文字幕亚洲精品 | 精品一久久香蕉国产线看观看下 | 曰本还a大片免费无播放器 曰本黄色录像 | 337p亚洲精品色噜噜狠狠 | 欧美刺激午夜性久久久久久久 | 国产成人乱码一区二区三区 | 四虎精品成在线播放 | 狠狠色丁香婷婷综合精品视频 | 天天操夜夜操免费视频 | 欧美一区二区三区精品国产 | 97视频免费 | 在线综合+亚洲+欧美中文字幕 | 亚洲欧美天堂网 | 另类图片综合 | 日本高清视频www夜色资源 | 欧美性生活视频免费 |