FastAPI是一个用于构建API的现代、高性能Python web框架。它使用标准的Python类型提示来支持数据自动验证和API文档自动生成。该框架的一些优点包括速度快、易用性好、自动文档生成、类型注解、异步支持和验证功能。
FastAPI与其他Python框架的不同之处在于,它基于ASGI而非WSGI,支持异步代码。FastAPI还使用Python 3.6+的类型提示来声明参数、请求体、响应模型等,而其他框架需要额外的库或插件来实现数据验证和序列化。此外,FastAPI基于OpenAPI和JSON Schema标准,可以自动生成交互式API文档和多种语言的客户端代码。它是一个微框架,只提供最基本的功能,而其他功能可以通过插件或依赖项来添加。这使得FastAPI更加灵活、可扩展和易于集成,而其他框架如Django则可能具有更多的内置功能,但也可能导致更多的耦合和复杂性。
下面使用FastAPI来写一个示例代码,提供访问google关键词的web服务,需要做以下几个步骤:
- 导入FastAPI和其他需要的库,如requests。
- 创建一个FastAPI实例。
- 定义一个接受一个关键词参数的路径操作函数。
- 在函数中,使用requests库和爬虫代理IP,发送一个带有关键词的请求到Google。
- 解析请求的响应,并将查询结果返回给客户端。
代码如下:
fromfastapiimportFastAPI, Queryimportrequestsfrombs4importBeautifulSoupimporturllib.parseapp=FastAPI() get("/search") .asyncdefsearch(keyword: str=Query(...)): # 亿牛云 爬虫加强版代理IP 设置代理IP,添加用户名和密码proxy_ip="www.16yun.cn"proxy_port="31111"proxy_username="16YUN"proxy_password="16IP"proxies= { "http": f"http://{proxy_username}:{proxy_password}@{proxy_ip}:{proxy_port}", "https": f"http://{proxy_username}:{proxy_password}@{proxy_ip}:{proxy_port}" } # 设置请求头headers= { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36" } # 发送请求到Googleresponse=requests.get(f"https://www.google.com/search?q={keyword}", proxies=proxies, headers=headers) # 解析响应内容soup=BeautifulSoup(response.text, "html.parser") # 获取查询结果的标题和链接results= [] foriteminsoup.select(".yuRUbf"): title=item.select_one(".DKV0Md").textlink=item.a["href"] results.append({"title": title, "link": link}) # 返回查询结果returnresults