java爬虫简介(一)->实现数据抓取->httpClient请求接口数据
背景 现如今,数据成为了越来越重要的网络资源,越来越有价值。无论是数据的分析还是前后端页面的数据交互,都离不开真实有效的数据。项目开发中数据甲方不可能实时提供,我们只能找到目标网站的数据进行抓取入库。 数据作用 决策支持 提升效益 数据的直接变现方式 数据资源交易 行业报告 广告平台 数据抓取的难点 1、目标网站有反爬取策略 2、目标网站模板会进行定时或实时变动 3、目标网站URL抓取失败 4、IP被封禁 解决办法: 购买代理IP库,随机获取IP进行数据抓取 部署多个应用分别进行抓取,降低单位节点访问的频率 设置每个页面抓取的时间间隔 5、用户登录限制 数据抓取的原理 实质上就是java程序模拟浏览器进行目标网站的访问,无论是请求目标服务器的接口还是请求目标网页内容,都是要在java程序中对数据进行解析。最简单的抓取方式有httpclient请求目标服务器接口,jsoup请求目标页面内容,把请求的数据进行解析然后入库。另外要做好爬取的实时监控,如果URL请求失败3次,就放弃该URL的抓取。 总体架构的设计 1、数据流向 1、确定数据爬取目标 2、数据采集 1、下载数据 2、解析数据 3、存取接入库(database,HDFS) 3、分析查询服务 2、模块划分 1、数据采集模块 2、数据分析模块 3、报表管理模块 4、系统管理与监控模块 3、模块解读 技术选型 数据采集层 JSoup