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

Python基礎(chǔ)進階之海量表情包多線程爬蟲功能的實現(xiàn)

 更新時間:2020年12月17日 15:22:58   作者:孤城暮雨  
這篇文章主要介紹了Python基礎(chǔ)進階之海量表情包多線程爬蟲,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、前言

在我們?nèi)粘A奶斓倪^程中會使用大量的表情包,那么如何去獲取表情包資源呢?今天老師帶領(lǐng)大家使用python中的爬蟲去一鍵下載海量表情包資源

二、知識點

requests網(wǎng)絡(luò)庫
bs4選擇器
文件操作
多線程

三、所用到得庫

import os
import requests
from bs4 import BeautifulSoup

四、 功能

# 多線程程序需要用到的一些包
# 隊列
from queue import Queue
from threading import Thread

五、環(huán)境配置

解釋器 python3.6
編輯器 pycharm專業(yè)版 激活碼

六、多線程類代碼

# 多線程類
class Download_Images(Thread):
  # 重寫構(gòu)造函數(shù)
  def __init__(self, queue, path):
    Thread.__init__(self)
    # 類屬性
    self.queue = queue
    self.path = path
    if not os.path.exists(path):
      os.mkdir(path)
  def run(self) -> None:
    while True:
      # 圖片資源的url鏈接地址
      url = self.queue.get()
      try:
        download_images(url, self.path)
      except:
        print('下載失敗')
      finally:
        # 當爬蟲程序執(zhí)行完成/出錯中斷之后發(fā)送消息給線程 代表線程必須停止執(zhí)行
        self.queue.task_done()

七、爬蟲代碼

# 爬蟲代碼
def download_images(url, path):
  headers = {
    'User-Agent':
      'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
  }
  response = requests.get(url, headers=headers)
  soup = BeautifulSoup(response.text, 'lxml')
  img_list = soup.find_all('img', class_='ui image lazy')
  for img in img_list:
    image_title = img['title']
    image_url = img['data-original']

    try:
      with open(path + image_title + os.path.splitext(image_url)[-1], 'wb') as f:
        image = requests.get(image_url, headers=headers).content
        print('正在保存圖片:', image_title)
        f.write(image)
        print('保存成功:', image_title)
    except:
      pass

if __name__ == '__main__':
  _url = 'https://fabiaoqing.com/biaoqing/lists/page/{page}.html'
  urls = [_url.format(page=page) for page in range(1, 201)]
  queue = Queue()
  path = './threading_images/'
  for x in range(10):
    worker = Download_Images(queue, path)
    worker.daemon = True
    worker.start()
  for url in urls:
    queue.put(url)
  queue.join()
  print('下載完成...')

八、爬取效果圖片

到此這篇關(guān)于Python基礎(chǔ)進階之海量表情包多線程爬蟲的文章就介紹到這了,更多相關(guān)Python多線程爬蟲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

伽师县| 府谷县| 舟曲县| 乳山市| 博白县| 阳春市| 杭锦后旗| 化德县| 三穗县| 栾川县| 海阳市| 龙江县| 石泉县| 安丘市| 台南市| 财经| 鄂伦春自治旗| 弥渡县| 依兰县| 三江| 南陵县| 正宁县| 昭平县| 大田县| 平罗县| 青川县| 库车县| 三穗县| 井陉县| 商河县| 兴业县| 高陵县| 吕梁市| 巩义市| 鄯善县| 凉城县| 衢州市| 滨州市| 玉田县| 葫芦岛市| 泾川县|