爬天極網多執行緒 py

2022-06-17 12:30:19 字數 1599 閱讀 8338

#匯入多執行緒模組:

import threading

import os

import requests # 傳送請求

from bs4 import beautifulsoup # 解析文字

base_path = os.path.dirname(os.path.abspath(__file__))

img_path = os.path.join(base_path, 'img')

def func(a):

#小f字串拼接下:

response = requests.get(f'')

soup = beautifulsoup(response.text, 'html.parser') # 將請求結果交給bs4解析

div_obj = soup.find(name='div', attrs=) # 經過分析之後,定位到指定div

list_dd = div_obj.find_all(name='dd')

for dd in list_dd: # 每一張的dl

a_obj = dd.find('a')

# 拼接資料夾的路徑,並建立資料夾

dir_path = os.path.join(img_path, a_obj.text)

if not os.path.isdir(dir_path): # 判斷檔案是否存在

os.mkdir(dir_path)

a_response = requests.get(a_obj.get('href'))

a_response.encoding = 'gbk'

soup2 = beautifulsoup(a_response.text, 'html.parser')

div_obj2 = soup2.find(name='div', attrs=)

print(div_obj2)

try:

img_list = div_obj2.find_all(name='img')

for img in img_list:

img_src = img.get("src")

img_response = requests.get(img_src.replace('113x113', '740x-'))

file_path = os.path.join(dir_path, img_src.rsplit('/', 1)[-1])

with open(file_path, 'wb') as f:

f.write(img_response.content)

except exception as e:

pass

#迴圈5圈:

for i in range(1,6):

#threading.thread(target = 函式名,args = (引數,)) #引數必須以元組的形式:

a = threading.thread(target=func,args=(i,))

a.start()

效果如下:

多執行緒爬取糗事網python3

使用到了多執行緒這裡使用queue進行資料互動 2.建立爬取頁面的類 3.建立處理資料的類 4.建立呼叫函式 cram exit false parse exit false def main pagequeue queue 20 for i in range 1,21 pagequeue.put ...

多執行緒爬智聯

突然想測試多執行緒爬蟲的速度,就寫了爬智聯多執行緒,爬的資料量少效果不是很明顯,都有注釋應該很好理解 獲取網頁內容,返回html資料 response requests.get url,headers headers 通過狀態碼判斷是否獲取成功 if response.status code 200...

使用多執行緒爬取資料

應用名稱 應用鏈結 import requests import time from multiprocessing import queue from threading import thread import json import urllib.parse class xiaomispide...