首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Securityaffairs爬虫实践-调用google翻译的API介绍

关注信息安全的帅哥美女们想必对于Securityaffairs都不陌生,作为一名信息安全的业余爱好者,每天我都会去浏览浏览Securityaffairs的网站,稍微了解下信息安全领域的前沿技术,然而作为英语水平一般的我来说,总是需要借助到google翻译,所以自己用Python写了一个google translate的api,有一些心得,分享给大家,同时给大家介绍一个非常好用的Python库------libdict。

Securityaffairs网页上的内容很多,我们感兴趣的仅仅是文章的标题和文章的内容,这就决定了我们只是做一个简单的聚焦爬虫(关于web前端的知识如果有需要日后可以发文章总结),通过简单的url管理、html解析与数据管理就能实现,复杂的爬虫问题推荐大家使用现在比较成熟的爬虫框架,比如Scrapy。首先需要用浏览器自带的网页开发工具找到它们的标签属性。

通过beautifulsoup的解析很容易得到我们想要的信息。(beautifulsoup是一个非常强大的解析html的Python库),如图是我用PyQt写的一个界面,得到我想要的信息(PyQt是一个强大的Python GUI库,可以理解伟Qt的Python版本)

解析文章内容的url也类似,不同的就是需要把超链接忽视掉,强大的beautifulsoup可以帮我们实现,再通过调用google翻译查看我想看的文章。

重点来了!爬Securityaffairs这个网站比较容易,因为这基本是一个静态网页而且不会遇到模拟登陆这样的问题,然而想调用google翻译就没这么容易了,通过WireShark抓包会发现,google翻译这个网站为了反爬虫设置了ip访问限制,这个问题可以通过使用多个代理Ip解决,但是另外一个恶心的问题是,在客户端发送http头的时候有一个参数tk是根据翻译内容随机生成的,如果忽略这个参数就会返回403错误,关于这个参数的生成规则十分复杂,我研究了好几天自己写算法去模拟也以失败而告终,它根据客户端发送的带翻译的post数据调用一段JS代码生成一个Tkk值,客户端得到这个值以后,在经过相当复杂的、长达十几步的数学运算生成一个tk值,发送给服务器获取响应。(具体的算法可以百度到)

就在我快要放弃的时候,我在github上找到了一个国外大神上传的提供直接调用google翻译api的Python库------libdict,当老铁们有这个需求的时候,强烈推荐给大家,pip install libdict之后就能用了,这里也附上链接:

https://github.com/iogf/libdict

用法非常简单:

了解更多黑客知识与Python编程技巧:

感谢帅哥美女们的关注~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G11GX300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券