消息关闭
    暂无新消息!

IDE:Pycharm(Only Python 3.6)
我想使用包builtwith来查看某网站搭建所使用的框架、语言。但是,python2中builtwith所需的urllib2在python3中被用urllib.request, urllib.parse, urllib.error替代。

所以我想通过改动builtwith的文档来达到同样的效果,让它适合python3改动了__init__.py中的prite语法,然后except Exception as e:,但是代码逻辑还是不对,执行builtwith.parse('http://www.hao123.com')接收不到url返回的数据`

try:
   request= urllib.request.Request(url, None, {'User-Agent': user_agent})
   #官方写法:request = urllib2.Request(url, None, {'User-Agent': user_agent})
if html:
   request.get_method = lambda: 'HEAD'
   response = urllib.request.urlopen(url)
   #官方写法:response = urllib2.urlopen(request)`

请问上图部分有错误吗?还是说,我还需要改动其他地方?或者如问题所述,有什么包可以替换Python2中的builtwith达到我说的效果也可以啊?
下面链接是完整的代码,方便各位比照:
我修改的builtwith__init__.py链接:我自己改的,跪求好心人看看
官方文档builtwith__init__.py链接:官方文档


2个回答

︿ 0
if html is None:
    html = response.read()

还需要改成

if html is None:
    html = response.read()
    html = html.decode('utf-8')

如果网站不是uif-8就需要把这个设置成响应的解码格式,当然也有其他库来判断编码格式自动切换。