私はコードをsimillarしなければなりません。一つはマルチスレッドで、もう一つはdoesntです。マルチスレッドを持っている一つは、このエラーはAttributeErrorを取得している:他のありえないが、ここに私のコードである一方、「NoneType」オブジェクトには、属性「テキスト」を持っていない:Error:AttributeError: 'NoneType'オブジェクトに属性 'text'がありません
マルチスレッド:
import threading
import requests
from bs4 import BeautifulSoup
symbolsfile = open("Stocklist.txt")
symbolslist = symbolsfile.read()
thesymbolslist = symbolslist.split("\n")
print (thesymbolslist)
print_lock = threading.Lock()
def th(ur):
theurl = "http://money.cnn.com/quote/quote.html?symb=" + ur
thepage = requests.get(theurl)
soup = BeautifulSoup(thepage.content,"html.parser")
textfind = soup.find('span',{"stream":"last_36276"})
texttext = textfind.text
with print_lock:
print(textfind)
threadlist = []
for u in thesymbolslist:
t = threading.Thread(target = th, args=(u,))
t.start()
threadlist.append(t)
for b in threadlist:
b.join()
と1なしマルチスレッド:
import requests
from bs4 import BeautifulSoup
theurl = "http://money.cnn.com/quote/quote.html?symb=" + "AAPL"
thepage = requests.get(theurl)
soup = BeautifulSoup(thepage.content,"html.parser")
textfind = soup.find('span',{"stream":"last_36276"})
texttext = textfind.text
print(texttext)
スレッドが必要ですか?最初に作業コードに、他のコードのようなメソッドを使用するようにしてください。 –
私が望んでいるのは、作業コードを他のリンクと一緒に処理することです。マルチスレッドを使用するとプロセスがスピードアップします。私が理解していないのは、マルチスレッドのエラーが発生している理由です。 – Zepol
ええ、 'soup.find'は何かを返すべきです(私が見ている唯一の' text'属性です) –