Google应用程序的抓取评论

时间:2017-04-08 07:53:18

标签: 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':'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

enter image description here

如何将其制作成json或结构化数据....

谢谢你们的时间

1 个答案:

答案 0 :(得分:0)

您可以使用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数据。

更新

我测试了脚本并发现了以下响应问题。

  1. 服务器发送的响应不是json。例如,它在开头有u")]}'\n\n"。验证print response.text[:6]
  2. 响应还包含一些unicode字符,即使您在数据中指定'charset': 'utf-8',也无法通过响应将其编码为ascii。
  3. 我认为这些是您无法将响应加载为json数据的原因。