课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
对于程序员来说,只有掌握了网络爬虫抓取信息的方法才能更有针对性的进行预防和限制,下面我们就通过案例分析来了解一下具体情况吧。
爬取网站的思路
先确定是否为动态加载网站
找URL规律
正则表达式或xpath
定义程序框架,补全并测试代码
多级页面数据抓取
1、爬取一级页面,提取所需数据+链接,继续跟进
2、爬取二级页面,提取所需数据+链接,继续跟进
常见的反爬总结
IP限制:网站根据IP地址访问频率进行反爬,短时间内进制IP访问
解决方案:
1、构造自己IP代理池,每次访问随机选择代理,经常更新代理池
2、购买开放代理或私密代理IP
3、降低爬取的速度
Cookies:建立有效的Cookie池,每次访问随机切换
1、适用网站类型:爬取网站页面时需要登录后才能访问,否则获取不到页面的实际响应数据
2、方法1(利用cookie)
1、先登录成功1次,获取到携带登陆信息的Cookie(处理headers)
2、利用处理的headers向URL地址发请求
3、方法2(利用session会话保持)
1、实例化session对象
session=requests.session()
响应内容前端JS做处理反爬
1、html页面中可匹配出内容,程序中匹配结果为空
响应内容中嵌入js,对页面结构做了一定调整导致,通过打印查看网页源代码,格式化输出查看结构,更改xpath或者正则测试
2、如果数据出不来可考虑更换IE的User-Agent尝试,数据返回标准
From表达数据认证(salt、sign)签名及js加密:一般为本地JS加密,查找本地JS文件,分析,或者使用execjs模块执行JS
js调整页面结构
js在响应中指定新地址:从响应代码中找目标地址,政府行政编码
动态生成
动态加载的数据,数据不再网页代码中,而是在后台的异步加载的数据包中。
1、F12打开控制台,页面动作抓取网络数据包
2、抓取json文件URL地址
#控制台中XHR:异步加载的数据包
#XHR->QueryString(查询参数)
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!