Python 爬取堆糖圖片

來源:互聯網
上載者:User

標籤:users   json   from   start   nload   thread   xtend   content   sts   

 1 import requests,json,urllib.parse 2 import threading 3 threading_lock=threading.BoundedSemaphore(value=10)#設定最大線程 4  5 def get_page(url): 6     page=requests.get(url) 7     page=page.content 8     page=page.decode(‘utf-8‘) 9     return page10 11 def pages_from_duitang(label):12     pages=[]13     url = ‘https://www.duitang.com/napi/blog/list/by_search/?kw={}&type=feed&start={}&limit=100‘14     label=urllib.parse.quote(label)15     for index in range(0,3000,100):16         page_url=url.format(label,index)17         print(page_url)18         page=get_page(page_url)19         pages.append(page)20     return pages21 22 23 24 def findall_page(page,startpaet,endstart):25     all_strat=[]26     end=027     while page.find(startpaet,end) != -1:28         start=page.find(startpaet,end)+len(startpaet)29         end=page.find(endstart,start)30         string=page[start:end]31         all_strat.append(string)32     return  all_strat33 34 def pic_urls_from_pages(pages):35     pic_urls=[]36     for page in pages:37         urls=findall_page(page,‘"path":"‘,‘"‘)38         pic_urls.extend(urls)39 40     return pic_urls41 42 def download_pics(url,name):43     r=requests.get(url)44     path=r‘C:\Users\Administrator\Desktop\爬取堆糖圖片\pics\\‘+str(name)+ ‘.jpg‘45     with open(path,‘wb‘) as f:46         f.write(r.content)47     threading_lock.release()48 def main(label):49     pages=pages_from_duitang(label)50     pic_urls=pic_urls_from_pages(pages)51     name=052     for url in pic_urls:53         name+=154         threading_lock.acquire()55         print(‘正在下載第{}張圖片‘.format(name))56         t=threading.Thread(target=download_pics,args=(url,name))57         t.start()58         #download_pics(url,name)59 60 61 62 main(‘表情包‘)

 

Python 爬取堆糖圖片

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.