Python小爬蟲, 多執行緒

2021-06-28 18:42:25 字數 1454 閱讀 5724

下面是初學了多執行緒,下手寫的乙個小爬蟲,**個人看著不那麼優雅,無奈水平不夠

望您發現有誤或者有改進的地方,能指正

import urllib.request as ur

import re

from threading import thread as tt

from queue import queue as qq

# 獲取html**

def get_html(url):

res = ur.request(url)

page = ur.urlopen(res)

html = page.read().decode('utf-8')

return html

# 正規表示式匹配的資料

def match_data(html):

data_list = [res_title, res_price, res_mall]

data = [each.findall(html) for each in data_list]

txt = zip(data[2], data[0], data[1])

return txt

# 位址列表

def urls(home):

url = [home[j] + str(i) for i in range(1, 11) for j in range(4)]

return url

# 把資料寫進txt

def write_data(data):

with open('smzdm.txt', 'a+', encoding='utf-8') as f:

for i in data:

f.write('----'.join(i))

f.write('\n')

# 編譯正則

res_title = re.compile(r';" >(.*?)(.*?)(.*?)')

# 位址是複製的,「什麼值得買」web

home = ['', '', '', '']

url = urls(home)

queue_url = qq() # 搞乙個佇列, 預設是'先進先出'

for i in url:

queue_url.put_nowait(i)

# 主控制函式

def main():

xurl = queue_url.get_nowait()

html = get_html(xurl)

data = match_data(html)

write_data(data)

# 多執行緒

while not queue_url.empty():

th = tt(target=main)

th.start()

th.join()

python爬蟲 多執行緒爬蟲

在進行爬蟲工作的時候,考慮到爬蟲執行的速度慢,那麼怎樣提公升爬蟲的速度呢,那麼就得使用多執行緒爬蟲了,接下來我以糗事百科段子的爬取進行對多執行緒爬蟲的概述 github鏈結 鏈結一 不使用多執行緒爬取糗事百科 1.上 import urllib.request import re headers f...

python多執行緒爬蟲

先記錄一下,普通的糗事百科爬蟲 import urllib.request import re import time import urllib.error headers user agent mozilla 5.0 windows nt 10.0 win64 x64 rv 63.0 gecko...

python多執行緒爬蟲

python多執行緒爬蟲 python單執行緒爬蟲對於應付小規模資料是可以的,但是面對大量資料,我們就要用到多執行緒爬蟲技術。使用多執行緒,一方面可能會加快效率,另一方面可以施加一些小技巧,如不同的執行緒使用不同的 ip從而避免出發反爬機制。python 多執行緒 python的多執行緒可以用thr...