当网站页面是使用了AJAX架构的时候
AJAX是动态数据,经常是返回json数据,这时候就要分析返回的json数据包。
所以json数据包的解析是必要的。
获取数据必须要灵活使用网页调试工具
目前的浏览器用Chrome,肯定是能够更好的跟踪调试要追踪的页面内容。
可以专门找个帖子看两眼,或者自己直接打开这个浏览器,然后从右上角的菜单,进入开发者工具,然后就可以看到下面的工具了。
这里面有个XHR,专门用来看ajax的数据的。
如下图里,进入network菜单,然后再点下XHR,可以看到各个请求与响应数据。
里面这个webid非常珍贵。
肯定可以想象,website是有各自预防手段的
def getdata(url, headers, cookies)
获取数据的基本参数是这样
这里的url可以直接用浏览器访问下后获取,URL里面有重要的参数_sigXXnatureXX,aXsXX,这两个是专门用来屏蔽的了。XX去掉。应该是有时效的参数。
但肯定是有短期办法。
图里的cookie部分,是一个重要参数。
作者就是在代码中使用的这个参数cookies = {'XXtt_XXwebXXid': '68058XX60779XX611653639'}
XX要去掉。
这个参数是要自己去用浏览器获得的,不可复制的,哈哈,不要傻傻的复制。
用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'])
重要的是与大家交流,抛砖引玉。
一块交流遇到的问题,打造实用代码。