Python多线程写个爬虫案例
时间: 2023-11-05 08:50:57 浏览: 95
好的,以下是一个使用多线程爬取网页内容的 Python 爬虫案例:
```python
import threading
import requests
class SpiderThread(threading.Thread):
def __init__(self, url):
threading.Thread.__init__(self)
self.url = url
def run(self):
resp = requests.get(self.url)
print(resp.text)
urls = ['https://www.baidu.com', 'https://www.google.com', 'https://www.bing.com']
threads = []
for url in urls:
thread = SpiderThread(url)
thread.start()
threads.append(thread)
# 等待所有线程结束
for thread in threads:
thread.join()
```
在这个案例中,我们创建了一个 `SpiderThread` 类,继承自 `threading.Thread` 类,用于定义要执行的线程任务。在这个例子中,我们使用 `requests` 库向指定的网址发送 `GET` 请求,并打印响应内容。
接着,我们循环遍历要爬取的网址,在每个网址上创建一个 `SpiderThread` 实例,并启动线程执行任务。最后,我们使用 `join` 方法等待所有线程执行完毕。
需要注意的是,这个例子中并没有考虑到线程安全的问题,如果要在实际项目中使用多线程爬虫,请务必注意线程安全问题,避免出现数据竞争等问题。
阅读全文