python分布式爬虫
时间: 2023-11-01 14:00:35 浏览: 88
Python分布式爬虫可以通过多进程或多线程的方式实现。其中,多进程方案可以使用Python内置的`multiprocessing`模块,将任务分配到多个进程中执行;多线程方案可以使用`threading`模块,将任务分配到多个线程中执行。此外,还可以使用第三方库`Scrapy`来实现分布式爬虫。
下面是一个使用`multiprocessing`模块实现分布式爬虫的示例代码:
```python
import multiprocessing
import requests
from bs4 import BeautifulSoup
def get_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
links = [link.get("href") for link in soup.find_all("a")]
return links
if __name__ == "__main__":
urls = ["http://www.example.com/page{}".format(i) for i in range(10)]
pool = multiprocessing.Pool(processes=4)
results = pool.map(get_links, urls)
pool.close()
pool.join()
print(results)
```
在这个示例中,我们定义了一个`get_links`函数,用于获取网页中的所有链接。然后,我们创建了一个包含10个URL的列表,并使用`multiprocessing.Pool`创建了一个拥有4个进程的进程池。最后,我们使用`pool.map`方法将任务分配到各个进程中执行,并将结果保存到`results`列表中。
阅读全文