当前位置: 移动技术网 > IT编程>脚本编程>Python > python反爬之网页局部刷新1

python反爬之网页局部刷新1

2018年11月20日  | 移动技术网IT编程  | 我要评论

mdf是什么,翟鸿燊最新讲座,www.binzhou.tv

# ajax动态加载网页
# 怎样判断一个网页是不是动态加载的呢?
# 查看网页源代码,如果源码中没有你要的数据,尝试访问下一页,当你点击下一页的时候,整个页面没有刷新, 只是局部刷新了,很大的可能是ajax加载
# 遇到ajax加载,一般的解决步骤就,通过浏览器或者软件抓包分析响应的请求,查看response里面哪个有你需要的数据,
# 然后再分析headers请求的网址,直接向哪个网址请求即可,当然还会有一些接口需要构建post请求
import json
import jsonpath
import requests
headers = {
    'user-agent':"mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.9.0.10) gecko/2009042316 firefox/3.0.10",
}
url = 'https://fe-api.zhaopin.com/c/i/sou?start={}&pagesize=60&cityid=489&workexperience=-1&education=-1&companytype=-1&employmenttype=-1&jobwelfaretag=-1&kw=python&kt=3&_v=0.11045029&x-zp-page-request-id=7d6ccc963ff14b1d995b6f21942f2295-1542632726829-135321'
r = requests.get(url=url.format(3*60),headers=headers)
demo = r.text
# string = json.dumps(demo, ensure_ascii=false)
obj = json.loads(demo)
ret = jsonpath.jsonpath(obj, '$..company.name')
print(ret)# ajax动态加载网页
# 怎样判断一个网页是不是动态加载的呢?
# 查看网页源代码,如果源码中没有你要的数据,尝试访问下一页,当你点击下一页的时候,整个页面没有刷新,
# 只是局部刷新了,很大的可能是ajax加载
# 遇到ajax加载,一般的解决步骤就,通过浏览器或者软件抓包分析响应的请求,查看response里面哪个是需要的数据,
# 然后再分析headers请求的网址,直接向哪个网址请求即可,当然还会有一些接口需要构建post请求
#导入的包如果下面出现红色波浪线,pip install 名字 即可
import json
import jsonpath
import requests
headers = {
    'user-agent':"mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.9.0.10) gecko/2009042316 firefox/3.0.10",
}
url = 'https://fe-api.zhaopin.com/c/i/sou?start={}&pagesize=60&cityid=489&workexperience=-1&education=-1&companytype=-1&employmenttype=-1&jobwelfaretag=-1&kw=python&kt=3&_v=0.11045029&x-zp-page-request-id=7d6ccc963ff14b1d995b6f21942f2295-1542632726829-135321'
r = requests.get(url=url.format(3*60),headers=headers)
demo = r.text
# string = json.dumps(demo, ensure_ascii=false)
obj = json.loads(demo)
ret = jsonpath.jsonpath(obj, '$..company.name')
print(ret)

  -----网页抓包----

通过观察,改变start后面数字,会出现不同的数据,第一页是0,第二页是60,依次递增,pagesize则是每一页出现多少条,最好不要改变

将网页中的内容粘贴到在线json解析中,可以看到,这是一个标准的json数据,通过在线解析可以看到清晰的结构

获取到的数据是一个json格式的字符串,需要使用jsonpath进行解析,获取里面的内容,图中选取了当前请求的公司名

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网