多线程爬虫的关键代码
时间: 2024-04-15 07:22:34 浏览: 77
多线程爬虫是一种同时使用多个线程来进行网页爬取的技术,可以提高爬取效率。以下是多线程爬虫的关键代码:
1. 创建线程池:
在多线程爬虫中,我们通常使用线程池来管理线程的创建和销毁。可以使用Python内置的`concurrent.futures`模块来创建线程池,示例代码如下:
```python
import concurrent.futures
# 创建线程池
executor = concurrent.futures.ThreadPoolExecutor(max_workers=10)
```
2. 定义爬取函数:
爬取函数是实际进行网页爬取的代码逻辑。在多线程爬虫中,我们需要将爬取函数作为任务提交给线程池执行。示例代码如下:
```python
import requests
def crawl(url):
# 发送HTTP请求并获取响应
response = requests.get(url)
# 处理响应数据
# ...
```
3. 提交任务给线程池:
在主程序中,我们需要将待爬取的URL作为任务提交给线程池执行。示例代码如下:
```python
# 待爬取的URL列表
urls = ['http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3']
# 提交任务给线程池
for url in urls:
executor.submit(crawl, url)
```
4. 等待任务完成:
在提交完所有任务后,我们需要等待所有任务完成。可以使用`concurrent.futures`模块提供的`wait`函数来实现等待任务完成。示例代码如下:
```python
# 等待任务完成
concurrent.futures.wait(executor)
```
阅读全文