Powershell 通过BING 搜索

简介:

豆子喜欢看小说 但是很多小说网页的爬虫很不给力,更新不及时。本来想看看Powershell有没有类似Python scarpy的能力,结果很失望,不过意外的发现很多搜索引擎都提供了API 可以通过PowerShell直接调用。


下面以微软的BING为例。

首先需要在azure的datamarket申请一个账号

https://datamarket.azure.com/dataset/bing/search#terms


用windows live账号登录,然后选择第一个就行了,这个每个月可以免费查询5000次,做个测试够用了。


wKiom1dOGEqjP8UTAAV4VrnT2l4676.png


切换到My Account ->My Data,这里可以直接使用一个在线版的API

wKioL1dOGm-Tep6mAADb_8671G0405.png


比如说,我可以搜索不同的内容,网页,图像,视频,新闻等等~


注意有个Primary Account Key, 这个就是我的主账号,调用API的时候需要通过这个ID来验证的

wKiom1dOGXWQ-fcOAAKIDEfYVME358.png


下面看看怎么在PowerShell里面调用。

我在网上搜索了一些,大部分是旧版的语法和例子,具体的语法也语焉不详 要不然就是一个链接直接执行MSDN,这个对于非专业的码农来说很难找到合适的例子,幸好找到一篇参考文章

http://www.powershelladmin.com/wiki/Accessing_the_Bing_Search_API_v2_using_PowerShell


首先根据主账号生成对应的access token, 大概可以参考这个链接

https://msdn.microsoft.com/en-AU/library/azure/dn798668.aspx#ManuallyCreateToken


然后比着上面那个GUI的自动生成的query格式写个function转换成需要的语法结构,因为他的返回值可以是xml或者json,因此直接用invoke-restmethod 调用就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$Key  '2rNmeyElCeWRJ1DLvRl5ReJ0l85R/klsdjlskfs'  #这个ID我改了一下,不是真的  
$Base64KeyBytes  [byte[]]  [Text.Encoding] ::ASCII.GetBytes( "ignored:$Key" )
$Base64Key  [Convert] ::ToBase64String( $Base64KeyBytes )
 
function  Get-BingQuery  {
     param ( [string[]]  $Query )
     Add-Type  -Assembly System.Web
     $Query  '%27'  + (( $Query  | %{  [Web.HttpUtility] ::UrlEncode( $_ ) }) -join  '+' ) +  '%27'
     # Return the proper string.
     $Query
}
$QueryString  Get-BingQuery  'music'
$Uri  'https://api.datamarket.azure.com/Bing/Search/Web?$format=json&$top=5&Query='  $QueryString
$Results  Invoke-RestMethod  -Uri  $Uri  -Headers @{ Authorization =  "Basic $Base64Key"  }
$Results .d.results | Select Title, Description, DisplayUrl, Url | fl

结果如下:

wKiom1dOHjWgGLk7AACPTEAKVeA424.png

成功






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1785044,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
搜索推荐 关系型数据库 MySQL
Metasploit -- Shodan搜索
Metasploit -- Shodan搜索
13 0
|
10月前
|
前端开发 JavaScript Python
10 个使用 Google 搜索的小技巧
最近 Twitter 上有一篇介绍 Google 搜索技巧的帖子,觉得非常实用,所以分享给大家,原帖子地址放在文末了。
93 0
10 个使用 Google 搜索的小技巧
|
网络协议 安全
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
3782 0
Bing搜索没法用的解决办法(附Google和edge的详细解决步骤)
|
搜索推荐
google搜索配置
google搜索配置
29297 0
|
Web App开发 搜索推荐
关于谷歌浏览器无法搜索的问题
关于谷歌浏览器无法搜索的问题
368 0
关于谷歌浏览器无法搜索的问题
|
Windows 数据格式 XML
通过Bing 制作搜索连接器(Windows 7 Federated Search)
在上一篇《Windows 7 资源管理器搜索Channel 9 视频》中我们制作了Channel 9 的搜索连接器,但是对于那些没有OpenSearch 服务的站点来说能否通过Federated Search 搜索到它们的资源呢?答案是肯定的。
1353 0

热门文章

最新文章