Pythonベースステップの海量表情パックマルチスレッド爬虫機能の実現


はじめに
私たちが日常的に話している間に大量の表情袋を使いますが、どのようにして表情包資源を取得しますか?今日先生はみんなを連れてpythonの中の爬虫を使って一ボタンダウンロードします。
二、知識点
requestsネットワークライブラリ
bs 4セレクタ
ファイル操作
マルチスレッド
三、使用したライブラリ

import os
import requests
from bs4 import BeautifulSoup
四、機能

#              
#   
from queue import Queue
from threading import Thread
五、環境配置
インタプリタpython 3.6
エディタpycharmプロバージョンのアクティブコード
六、マルチスレッドコード

#     
class Download_Images(Thread):
  #       
  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:
        #          /                        
        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('    ...')
八、効果画像をよじ登る

ここで、Pythonの基礎的な階段の大きさについて、表情袋の多スレッド爬虫の文章を紹介します。これに関連して、Python多スレッド爬虫の内容は以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。