从url解析时,Urllib请求会引发解码错误

时间:2016-12-19 21:15:20

标签: python json decode urllib

我试图解析此网址中的json格式数据:http://ws-old.parlament.ch/sessions?format=json。我的浏览器很好地处理了json数据。但请求总是抛出以下错误:

JSONDecodeError:期望值:第3行第1列(字符4)

我使用的是Python 3.5。这是我的代码:

import json
import urllib.request

connection = urllib.request.urlopen('http://ws-old.parlament.ch/affairs/20080062?format=json')

js = connection.read()

info = json.loads(js.decode("utf-8"))
print(info)

1 个答案:

答案 0 :(得分:2)

该网站使用User-Agent过滤仅向已知浏览器提供JS。幸运的是,它很容易被愚弄,只需将User-Agent标题设置为Mozilla

request = urllib.request.Request(
    'http://ws-old.parlament.ch/affairs/20080062?format=json',
    headers={'User-Agent': 'Mozilla'})

connection = urllib.request.urlopen(request)
js = connection.read()

info = json.loads(js.decode("utf-8"))
print(info)