java爬虫抓取动态网页(网络爬虫抓取信息的案例分析-一下具体情况)
优采云 发布时间: 2022-03-28 06:13java爬虫抓取动态网页(网络爬虫抓取信息的案例分析-一下具体情况)
对于程序员来说,只有掌握了网络爬虫爬取信息的方法,才能进行更有针对性的防范和限制。让我们通过一个案例来了解具体情况。
爬取网站的思路
先判断是否是动态加载网站
查找 URL 模式
正则表达式或 xpath
定义程序框架,完成并测试代码
多级页面数据抓取
1、爬取一级页面,提取需要的数据+链接,继续跟进
2、 爬取二级页面,提取需要的数据+链接,继续跟进
常见反爬总结
IP限制:网站根据IP地址的访问频率进行反爬,短时间内进行IP访问。
解决方案:
1、构建自己的IP代理池,每次访问随机选择一个代理,并经常更新代理池
2、购买开放代理或私有代理IP
3、降低爬行速度
Cookies:建立有效的cookie池,每次访问时随机切换
1、适用于网站类型:爬取网站页面时需要登录才能访问,否则无法获取页面的实际响应数据
2、方法一(使用cookies)
1、 先登录一次成功,获取带有登录信息的cookie(处理headers)
2、使用处理后的headers向URL地址发送请求
3、方法二(使用会话会话保留)
1、实例化会话对象
会话=请求。会话()
响应内容前端JS进行处理和反爬
1、html页面中可以匹配内容,程序中匹配结果为空
在响应内容中嵌入js,对页面结构做一些调整,通过打印查看网页源代码,格式化输出查看结构,更改xpath或者常规测试
2、如果数据不可用,考虑更换IE的User-Agent,尝试将数据返回标准
FromExpression数据鉴权(salt,sign)签名和js加密:一般是本地JS加密,找本地JS文件,分析,或者使用execjs模块执行JS
js调整页面结构
js在响应中指定一个新地址:从响应码中找到目标地址,政府行政码
动态生成
动态加载数据,数据不再在网页代码中,而是在后台异步加载的数据包中。
1、F12打开控制台,页面动作抓取网络包
2、 抓取json文件的url地址
控制台中的#XHR:异步加载的数据包
#XHR->QueryString(查询参数)