python - 谷歌安全浏览 API : always getting an error

标签 python python-3.x safe-browsing

我使用谷歌安全浏览 API。所以我测试了这个简单的代码:

from safebrowsinglookup import SafebrowsinglookupClient

class TestMe:
    def testMe(self):
        self.key='my_Valid_Key_Here'        
        self.client=SafebrowsinglookupClient(self.key)
        self.response=self.client.lookup('http://www.google.com')
        print(self.response)

if __name__=="__main__":
    TM=TestMe()
    TM.testMe()

无论我测试什么网站,我总是得到这个:

{'website_I_tried','error'}

请注意,我在安装此 API 后必须更改源代码中的一些行,因为它是用 Python 2 编写的,而我使用的是 Python 3.4.1。我该如何解决这个问题?


更新:

为了理解为什么我会出现上述问题,我运行了这段代码:

from safebrowsinglookup import SafebrowsinglookupClient  

class TestMe:
    def testMe(self):
        self.key = 'my_key_here'        
        self.client=SafebrowsinglookupClient(self.key,debug=1)
        urls = ['http://www.google.com/','http://addonrock.ru/Debugger.js/']        
        self.results = self.client.lookup(*urls)
        print(self.results['http://www.google.com/'])

if __name__ == "__main__":
    TM=TestMe()
    TM.testMe()

现在,我收到了这条消息:

BODY:
2
http://www.google.com/
http://addonrock.ru/Debugger.js/


URL: https://sb-ssl.google.com/safebrowsing/api/lookup?client=python&apikey=ABQIAAAAAU6Oj8JFgQpt0AXtnVwBYxQYl9AeQCxMD6irIIDtWpux_GHGQQ&appver=0.1&pver=3.0
Unexpected server response

name 'urllib2' is not defined
error
error

最佳答案

The library不支持 Python3.x。

在这种情况下,您可以选择 make it support Python3 (还有一个 opened pull request 用于 Python3 兼容性),或手动向“Google Safebrowsing API”发出请求。

这是一个使用 requests 的例子:

import requests

key = 'your key here'
URL = "https://sb-ssl.google.com/safebrowsing/api/lookup?client=api&apikey={key}&appver=1.0&pver=3.0&url={url}"


def is_safe(key, url):
    response = requests.get(URL.format(key=key, url=url))
    return response.text != 'malware'


print(is_safe(key, 'http://addonrock.ru/Debugger.js/'))  # prints False
print(is_safe(key, 'http://google.com'))  # prints True

完全相同,但没有第三方包(使用 urllib.request ):

from urllib.request import urlopen


key = 'your key here'
URL = "https://sb-ssl.google.com/safebrowsing/api/lookup?client=python&apikey={key}&appver=1.0&pver=3.0&url={url}"


def is_safe(key, url):
    response = urlopen(URL.format(key=key, url=url)).read().decode("utf8")
    return response != 'malware'


print(is_safe(key, 'http://addonrock.ru/Debugger.js/'))  # prints False
print(is_safe(key, 'http://google.com'))  # prints True

关于python - 谷歌安全浏览 API : always getting an error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054946/

相关文章:

python - 对数缩放(应用函数?)稀疏矩阵

django - 类' __str__ 的 Python 测试覆盖率

python - Python 3.10 中的 Tkinter?

java - Google 安全浏览 v4 API java

python - 创建包含每个独特团队获胜顺序计数器的列表

python - 去除图像中的倾斜水平线

java - Google 安全浏览查找 API

java - 有什么方法可以跟踪或监听用户点击浏览器中的任何链接,或任何聊天信使应用程序甚至短信吗?

python - Groupby 所选 DataFrame 列的值的给定百分位数

python - pandas.to_csv() 一些单词为粗体