私は実際のクローラをマルチスレッドにしようとしています。
マルチスレッドを設定すると、関数のいくつかのインスタンスが開始されます。重複する結果を避けるマルチスレッドPython
Exemple:
私の機能は、私がprint range(5)
を使用して、私は2スレッドを持っている場合、私は1,1,2,2,3,3,4,4,5,5
を持つことになります。
1,2,3,4,5
をマルチスレッドで使用するにはどうすればよいですか?私は、重複リンクなしマルチスレッドでtrade_spider()
呼び出すことができますどのように
import requests
from bs4 import BeautifulSoup
def trade_spider(max_pages):
page = 1
while page <= max_pages:
url = "http://stackoverflow.com/questions?page=" + str(page)
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll('a', {'class': 'question-hyperlink'}):
href = link.get('href')
title = link.string
print(title)
get_single_item_data("http://stackoverflow.com/" + href)
page += 1
def get_single_item_data(item_url):
source_code = requests.get(item_url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
res = soup.find('span', {'class': 'vote-count-post '})
print("UpVote : " + res.string)
trade_spider(1)
:あなたが下に見ることができるよう
私の実際のコードは、クローラのですか?
[共有 'マルチプロセッシング。値]](https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes)を試したことがありますか? –
まだ、私は試してみます – Pixel
@DavidCullenあなたは私に例を教えてください、私は共有マルチプロセッシングがどのようにドキュメント内で動作するかはわかりません。ありがとうございます – Pixel