Python 网络爬虫中的同步与异步示例详解
在 Python 网络爬虫中,同步和异步是两种常用的爬取方式。同步爬取方式是指程序按照顺序依次爬取每个页面,直到所有页面都被爬取完毕。而异步爬取方式是指程序同时发送多个请求,不需要等待前一个请求的响应就可以发送下一个请求。以下是 Python 网络爬虫中的同步与异步示例详解。
同步爬取示例
以下是一个同步爬取示例,使用 requests 模块依次爬取多个页面:
import requests
urls = ['http://www.example.com/page1', 'http://www.example.com/page2', 'http://www.example.com/page3']
for url in urls:
response = requests.get(url)
print(response.text)
在上面的示例中,我们使用 requests 模块依次爬取了三个页面,并打印出了响应的文本内容。
异步爬取示例
以下是一个异步爬取示例,使用 aiohttp 模块同时发送多个请求:
import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
urls = ['http://www.example.com/page1', 'http://www.example.com/page2', 'http://www.example.com/page3']
async with aiohttp.ClientSession() as session:
tasks = [asyncio.create_task(fetch(session, url)) for url in urls]
pages = await asyncio.gather(*tasks)
for page in pages:
print(page)
asyncio.run(main())
在上面的示例中,我们使用 aiohttp 模块同时发送了三个请求,并使用 asyncio.gather 方法等待所有请求的响应。最后打印出了所有页面的文本内容。
以上是 Python 网络爬虫中的同步与异步示例详解,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python网络爬虫中的同步与异步示例详解 - Python技术站