这个pip包的目的是使用serp api对google结果进行擦写和解析。请随意分叉此存储库以添加更多后端。

google-search-results的Python项目详细描述


python中的google搜索结果

构建状态

这个python包旨在使用serp api擦写和解析google结果。 提供以下服务:

serp api提供了一个脚本生成器来帮助您快速入门。

请随意分叉此存储库以添加更多后端。

安装

python 2.7或3.7

pip install google-search-results

指向python包页的链接

快速启动

fromlib.google_search_resultsimportGoogleSearchResultsquery=GoogleSearchResults({"q":"coffee","location":"Austin,Texas"})json_results=query.get_json()

此示例使用您的机密API密钥运行有关"咖啡"的搜索。

SERP API服务(后端)

  • 使用客户端在谷歌上搜索:q="coffee"
  • 解析混乱的HTML响应
  • 返回标准化json响应 ruby类googlesearchresults
  • 将请求格式化为SERP API服务器
  • 执行get http请求
  • 使用ruby提供的json标准库将json解析为ruby散列 等等..

示例

如何设置SERP API密钥

SERP API密钥可以使用单例模式全局设置。

GoogleSearchResults.SERP_API_KEY="Your Private Key"

可以为每个客户机提供SERP API密钥。

query=GoogleSearchResults({"q":"coffee","serp_api_key":"Your Private Key"})

搜索API功能

client_params={"q":"client","google_domain":"Google Domain","location":"Location Requested","device":"desktop|mobile|tablet","hl":"Google UI Language","gl":"Google Country","safe":"Safe Search Flag","num":"Number of Results","start":"Pagination Offset","serp_api_key":"Your SERP API Key","tbm":"nws|isch|shop""tbs":"custom to be search criteria""async":true|false# allow async "output":"json|html"# output format}# define the search clientquery=GoogleSearchResults[query_params]# override an existing parameterquery.params_dict["location"]="Portland"# search format return as raw htmlhtml_results=query.get_html()# search as raw JSON formatjson_results=query.get_json()# search as raw Dictionary formatjson_results=query.get_dict()

(完整文档)[https://serpapi.com/search api]

有关更多实际操作示例,请参见下面的内容。

按规格举例

我们热爱真正的开源、持续集成和测试驱动开发(TDD)。 我们正在使用rspec对我们的基础设施进行全天候的测试,以获得最佳的服务质量(qos)。

目录test/包括规范/示例。

设置API密钥。

exportAPI_KEY="your secret key"

运行测试

maketest

位置API

client=GoogleSearchResults({})location_list=client.get_location("Austin",3)print(location_list)

它打印与奥斯汀(德克萨斯州、德克萨斯州、罗切斯特)匹配的前3个位置

[{'canonical_name':'Austin,TX,Texas,United States','country_code':'US','google_id':200635,'google_parent_id':21176,'gps':[-97.7430608,30.267153],'id':'585069bdee19ad271e9bc072','keys':['austin','tx','texas','united','states'],'name':'Austin, TX','reach':5560000,'target_type':'DMA Region'},...]

搜索存档API

搜索结果存储在临时缓存中。 以前的搜索可以从缓存中免费检索。

pip install google-search-results
0

现在让我们从存档中检索以前的搜索。

pip install google-search-results
1

它打印存档中的搜索结果。

帐户API

pip install google-search-results
2

它会打印您的帐户信息。

搜索谷歌图像

pip install google-search-results
3 <这段代码打印所有的图像链接, 如果使用wget(linux/osx工具下载图像)取消注释行,则下载图像。

本教程将详细介绍此主题。 https://github.com/serpapi/showcase serpapi tensorflow keras-image-training

搜索谷歌新闻

pip install google-search-results
4

此脚本打印过去24小时内新闻标题的前3页。

搜索谷歌购物

pip install google-search-results
5

此脚本按审阅顺序打印所有购物结果。

按位置搜索谷歌

使用serp api,我们可以从世界任何地方构建google搜索。 此代码正在寻找每个城市最好的咖啡店。

pip install google-search-results
6

批量异步搜索

我们确实提供了两种方法来增强您的搜索,这要感谢async参数。

  • blocking-async=false-这需要更多的计算,因为客户端需要保持许多连接。(默认)
  • 无阻塞-async=true-对于批量提交的大量查询(推荐)

在python中添加示例

这段代码显示了一个简单的实现,可以运行一批异步搜索。

结论

serpapi支持google图片、新闻、购物等。 若要启用搜索类型,必须将字段tbm(待匹配)设置为:

  • ISCH:Google图像API。
  • nws:google新闻api。
  • 购买:谷歌购物API。
  • 任何其他谷歌服务都应该开箱即用。
  • (无TBM参数):常规谷歌客户端。

字段tbs允许自定义更多搜索。

这里有完整的文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener