Python 谷歌应用程序的爬网评论
我想使用python 3.5对网站(谷歌应用商店评论)进行爬网 所以我得到了关于使用ajax的答案Python 谷歌应用程序的爬网评论,python,web,web-crawler,Python,Web,Web Crawler,我想使用python 3.5对网站(谷歌应用商店评论)进行爬网 所以我得到了关于使用ajax的答案 url = "https://play.google.com/store/getreviews?authuser=0" param = {'reviewType': '0', 'pageNum': '1', 'id':'com.venticake.retrica', 'reviewSortOrder':'4', 'xhr'
url = "https://play.google.com/store/getreviews?authuser=0"
param = {'reviewType': '0',
'pageNum': '1',
'id':'com.venticake.retrica',
'reviewSortOrder':'4',
'xhr':'1',
'token':'ZLqR3TmB64y6koyq8uj1tqqiQ4k:14191636750027',
'hl':'ko'}
r = requests.post(url, data=param)
d = json.loads(r.text)
你喜欢这样吗
但反应是
')]}\'\n\n[["ecr",1," \\u003cdiv class\\u003d\\"single-review\\" tabindex\\u003d\\"0\\"\\u003e \\u003cspan\\u003e \\u003cspan
如何将其转换为json或结构化数据
感谢大家的时间您可以使用json()方法转换python请求的响应
url = "https://play.google.com/store/getreviews?authuser=0"
param = {'reviewType': '0',
'pageNum': '1',
'id':'com.venticake.retrica',
'reviewSortOrder':'4',
'xhr':'1',
'token':'ZLqR3TmB64y6koyq8uj1tqqiQ4k:14191636750027',
'hl':'ko'}
response = requests.post(url, data=param)
x = response.json()
这将把响应序列化为json数据
更新:
我测试了脚本,发现响应存在以下问题
u”)]}”\n\n“
。要验证它,请打印响应。文本[:6]“charset”:“utf-8”
,响应也无法将这些字符编码为ascii我认为这就是您无法将响应作为json数据加载的原因。code:r.json()回溯(最近一次调用)返回complexjson.loads(self.text,**kwargs)文件“C:\Anaconda3\envs\py35\lib\json\u init\uuuu.py”,第319行,在加载返回的默认解码器中。解码文件“C:\Anaconda3\envs\py35\lib\json\decoder.py”,第339行,在decode obj中,end=self.raw_decode(s,idx=_w(s,0.end())文件“C:\Anaconda3\envs\py35\lib\json\decoder.py”,第357行,在raw_decode中,从None中提出jsondecodecorr(“期望值”,s,err.value),jsondecodecorr:Expecting值我得到了这个消息,然后尝试response.content并使用json.loads(response.content)加载response.content将是str。您可以使用load来加载str响应。我可以在您发布的响应中看到一些unicode字符。我怀疑这也可能是由于在使用json.loads()加载响应时,从包含Unicode字符的字符串加载json时看到了这一点。