使用python 实现并发爬虫
时间: 2024-03-07 15:27:55 浏览: 20
Python有很多库可以用于并发爬虫,比如 asyncio、aiohttp、requests、beautifulsoup4、lxml等。下面是一个使用 asyncio 和 aiohttp 实现并发爬虫的示例代码:
```
import asyncio
import aiohttp
from bs4 import BeautifulSoup
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
urls = [
'https://www.python.org/',
'https://www.baidu.com/',
'https://www.bing.com/'
]
async with aiohttp.ClientSession() as session:
tasks = []
for url in urls:
tasks.append(asyncio.ensure_future(fetch(session, url)))
pages = await asyncio.gather(*tasks)
for page in pages:
soup = BeautifulSoup(page, 'html.parser')
print(soup.title)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
在这个示例代码中,我们使用 asyncio 和 aiohttp 实现了一个简单的并发爬虫。通过使用 asyncio.ensure_future() 函数创建任务,我们可以同时发起多个 HTTP 请求,从而提高爬取数据的效率。在获取网页的 HTML 文本后,我们使用 BeautifulSoup 解析 HTML 文本,并输出页面的标题。这个示例代码只是一个简单的示例,你可以根据自己的需求对其进行修改和扩展。