用python解析网络新闻JSon数据,业精于勤

当网站页面是使用了AJAX架构的时候

AJAX是动态数据,经常是返回json数据,这时候就要分析返回的json数据包。

所以json数据包的解析是必要的。

获取数据必须要灵活使用网页调试工具

目前的浏览器用Chrome,肯定是能够更好的跟踪调试要追踪的页面内容。

可以专门找个帖子看两眼,或者自己直接打开这个浏览器,然后从右上角的菜单,进入开发者工具,然后就可以看到下面的工具了。

这里面有个XHR,专门用来看ajax的数据的。

如下图里,进入network菜单,然后再点下XHR,可以看到各个请求与响应数据。

里面这个webid非常珍贵。

用python解析网络新闻JSon数据,业精于勤

肯定可以想象,website是有各自预防手段的

def getdata(url, headers, cookies)

获取数据的基本参数是这样

这里的url可以直接用浏览器访问下后获取,URL里面有重要的参数_sigXXnatureXX,aXsXX,这两个是专门用来屏蔽的了。XX去掉。应该是有时效的参数。

但肯定是有短期办法。

图里的cookie部分,是一个重要参数。

作者就是在代码中使用的这个参数cookies = {'XXtt_XXwebXXid': '68058XX60779XX611653639'}

XX要去掉。

这个参数是要自己去用浏览器获得的,不可复制的,哈哈,不要傻傻的复制。

用python解析网络新闻JSon数据,业精于勤

用pycharm调试的时候用到的三个库

import requests

import json

from openpyxl import Workbook

小技巧就是把光标放到比如requests前面,然后按alt+enter就可以出现菜单,安装这个库了。

如果访问速度太慢,就用国内的镜像,举例如下:XX可以网络查到豆瓣,阿里,清华的镜像

pip install -i https:XX --trusted-host YY requests

略微示意下关键代码

可以去代码网站上查找得到哈,(我们这里实在阅读代码不方便,审核也麻烦)

def main(max_behot_time, title,

source_url, s_url, source, media_url):

# 主函数

for i in range(3): # 此处的数字类似于你刷页面的次数

ascp = get_as_XXcXXp() # 获取XXaXXs和cXXp参数的函数,xx去掉

demo = getdata(start_url, headers, cookies)

print(demo)

# time.sleep(1)

for j in range(len(demo['data'])):

# print(demo['data'][j]['title'])

if demo['data'][j]['title'] not in title:

# 获取title

title.append(demo['data'][j]['title'])

重要的是与大家交流,抛砖引玉。

用python解析网络新闻JSon数据,业精于勤

一块交流遇到的问题,打造实用代码。


分享到:


相關文章: