Я пытаюсь очистить метеорологические данные от weatherunderground и использовать библиотеку multiprocessing.dummy для запуска моих запросов через разные потоки. Я получаю сообщение об ошибке при запуске следующего кода, и мне было интересно, сможет ли кто-нибудь пройти через то, что происходит, и возможное решение. Примечание: мой код может быть отключен.Python Скребок многопоточности
from bs4 import BeautifulSoup # HTML Text Parsing Package
from urllib2 import urlopen # Package to read URLs
import requests # Package to actually request URL
import nltk
import re
import itertools as ite
import pandas as pd
def scrape(urls):
actual_temp = []
string = requests.get(URL)
soup = BeautifulSoup(string)
actual_temp_tag = soup.find_all(class_ = "wx-value")[0]
actual_temp.append(actual_temp_tag.string)
return actual_temp
URLs = []
for j in range(1,2):
for i in range(1,32):
SUB_URL = 'http://www.wunderground.com/history/airport/KBOS/2014/' + str(j) + '/' + str(i) + '/' + '/DailyHistory.html'
URLs.append(SUB_URL)
from multiprocessing.dummy import Pool as ThreadPool
pool = ThreadPool(8)
results = pool.map(scrape, URLs)
pool.close()
pool.join()
Ниже приводится сообщение об ошибке я получаю:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\bwei\Downloads\WinPython-64bit-2.7.9.4\python-2.7.9.amd64\lib\multiprocessing\pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "C:\Users\bwei\Downloads\WinPython-64bit-2.7.9.4\python-2.7.9.amd64\lib\multiprocessing\pool.py", line 558, in get
raise self._value
TypeError: object of type 'Response' has no len()
В дополнение раз моя программа была выполнена, как я закрываю все нити? Я заметил, что после того, как мой% доступной памяти повысился, но не возвращается после запуска
Что ошибка вы получаете .. сообщение 'Traceback' сообщение –
Просто добавил сообщение об ошибке на вопрос – mangodreamz
' строка = requests.get (URL) '' request.get' возвращает объект ответа, а не строку. –