【发布时间】:2019-08-30 14:22:24
【问题描述】:
我有一个相对 URL 列表 -PostLink 和一个 base_url。我通过for loop 向每个网址发出请求。它运行良好,大约需要六分钟。
import requests
bowl = requests.get('http://www.aaronsw.com/weblog/fullarchive')
soup = BeautifulSoup(bowl.text, 'html.parser')
PostLink = soup.body.find_all('a', href = True)
PostLink = [i['href'] for i in PostLink][2:]
baseurl = 'http://www.aaronsw.com/weblog/'
bowls = [requests.get(baseurl + i) for i in PostLink]
现在觉得这个工作是I/O密集型的,希望通过多线程加快爬取速度。
我试过了
from concurrent.futures import ThreadPoolExecutor
pool = ThreadPoolExecutor(6)
res = []
for i in PostLink:
future = pool.submit(requests.get, (baseurl + i))
res.append(future.result())
我认为我做错了。任何帮助表示赞赏。
【问题讨论】:
标签: python multithreading python-requests