Получение AttributeError: у объекта 'str' нет атрибута 'close'
Пробный закрывающий файл (все еще в коде ниже), перекодированный дважды.
import urllib2
import csv
import lxml
from bs4 import BeautifulSoup
from multiprocessing.dummy import Pool # This is a thread-based Pool
from multiprocessing import cpu_count
placeHolder = []
def crawlToCSV(URLrecord):
try:
OpenSomeSiteURL = urllib2.urlopen(URLrecord).read()
Soup_SomeSite = BeautifulSoup(OpenSomeSiteURL, "lxml")
OpenSomeSiteURL.close()
tbodyTags = Soup_SomeSite.find("title")
except urllib2.URLError:
print (URLrecord.rstrip() + " -- Error")
Soup_SomeSite = ""
OpenSomeSiteURL = ""
if __name__ == "__main__":
fileName = raw_input()
pool = Pool(cpu_count() * 2) # Creates a Pool with cpu_count * 2 threads.
with open(fileName, "rb") as f:
results = pool.map(crawlToCSV, f) # results is a list of all the placeHolder lists returned from each call to crawlToCSV
f.close()
Также извините за плохое кодирование, впервые с многопоточностью Python, я допустил много ошибок.
Сейчас пытаемся запустить его без ошибок при принятии URL-адресов.
File "test.py", line 26, in <module>
results = pool.map(crawlToCSV, f) # results is a list of all the placeHolder lists returned from each call to crawlToCSV
File "/usr/lib/python2.7/multiprocessing/pool.py", line 253, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/lib/python2.7/multiprocessing/pool.py", line 572, in get
raise self._value
AttributeError: 'str' object has no attribute 'close'