博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QQ空间Python爬虫(2)---分析json
阅读量:6462 次
发布时间:2019-06-23

本文共 1926 字,大约阅读时间需要 6 分钟。

我们把上一篇访问得到的json数据拿来先分析一下,这里需要借助json解析工具,推荐json.cn:

 

 

 

观察图片右边,具体的分析过程不再赘述了,我们发现图片url信息在 date-->vFeeds(list)-->pic-->picdata-->pic(list)-->photourl-->0-->url 中(其中的list注意循环处理一下)

文字信息在date-->vFeeds(list)-->summary-->summary中,代码如下:

1 url_x = 'https://mobile.qzone.qq.com/list?qzonetoken=30168ded82ff81d41e518db8ef77b00b94375b2139f956165128f52dd25c322e603e03f180d761dc42881f1a83e9&g_tk=420005040&res_attach=att%3D' 2 url_y = '%26tl%3D1508148135&format=json&list_type=shuoshuo&action=0&res_uin=627911861&count=40' 3 numbers = 0      # ‘查看更多’翻页 4 img_set = set()  # 存放图片url集 5 word_count = 0   # 文字说说计数器 6 words = ""       # 存放文字说说 7 images = ""      # 存放图片url 8 page = int(1758 / 40) 9 10 # for i in range(0, 43):11 try:12     html = requests.get(url_x + str(numbers) + url_y, headers=headers).content13     data = json.loads(html)14 15     for vFeed in data['data']['vFeeds']:16         if 'pic' in vFeed:17             for pic in vFeed['pic']['picdata']['pic']:18                 img_set.add(pic['photourl']['0']['url'])19 20         if 'summary' in vFeed:21             # print(str(word_count) + '. ' + vFeed['summary']['summary'])22             words += str(word_count) + '. ' + vFeed['summary']['summary'] + '\r\n'23             word_count += 124 25 except:26     print('error')

上面之所以要把url拆成两段是为了处理变量,因为url存在%字符,用%s,%d来处理比较麻烦(懒得研究-。-)

(此处代码仅仅爬取了40条说说信息,先测试跑通,后面再做爬取所有说说的循环处理)

 

 

接下来,就可以将爬取到的文字与图片信息分别写入文件了,文字可以直接写成文本文件,图片为url集合先写入文件再做下载处理:

1 try: 2     with open(os.getcwd() + '\\' + str(qq) + '.txt', 'wb') as fo: 3         fo.write(words.encode('utf-8')) 4         print("文字说说写入完毕") 5  6     with open(os.getcwd() + '\\' + 'images_url', 'wb') as foImg: 7         for imgUrl in img_set: 8             images += imgUrl + '\r\n' 9         foImg.write(images.encode('utf-8'))10         print("图片写入完毕")11 12 except:13     print('写入数据出错')

 

多次请求之后会发生登陆的问题,后面再描述。不过,json数据分析的部分至此已经完成了。

 

下一章:

转载于:https://www.cnblogs.com/neilshi/p/7879935.html

你可能感兴趣的文章
HDU 4996 Revenge of LIS(DP)
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
Android中的PID和UID
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>
判断一个数是否为素数的一个讨论(一)
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
[洛谷P3978][TJOI2015]概率论
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
完美字符串
查看>>
zoom和transform:scale的区别
查看>>