数据挖掘之网络爬虫 - 基础

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 简单的爬虫基础 - 在实际开发中也是够用了, 若是开发爬虫系统还需要仔细寻思爬虫系统架构

在项目添加 maven 配置

<!-- 解析数据 -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.8.3</version>
</dependency>

<!-- 爬网页 -->
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
</dependency>

使用 HttpClient 发起请求获取页面数据

HttpGet httpGet = new HttpGet("https://www.baidu.com/");

HttpHost proxy = new HttpHost("125.70.13.77", 8080);// 使用代理服务器发送请求
httpGet.setConfig(RequestConfig.custom()
                  .setSocketTimeout(30000)// 发送时间
                  .setConnectTimeout(30000)// 连接时间
                  .setProxy(proxy)// 设置代理服务器
                  .build());

CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpClientContext context = HttpClientContext.create();

CloseableHttpResponse response = httpClient.execute(httpGet, context);

HttpEntity entity = response.getEntity();
String html = EntityUtils.toString(entity, "utf-8");

System.out.println(html);
  1. 不使用本机发起请求, 而是使用代理服务器发起请求是应为: 防止被一些反扒网站拉黑: 代理服务器

使用Jsoup发起请求并且解析页面数据

// 获取 Document 对象
Document document = Jsoup.connect("https://www.baidu.com/").get();

// 通过 CSS 选择器, 匹配标签数据
Elements select = document.select("a");

for (Element element : select) {
    System.out.println(element);
}
  1. Document对象中有各种JavaScript 和 CSS解析方法

一般发送请求使用httpclient解析网页数据使用jsoup, 两者组合使用

HttpGet httpGet = new HttpGet("https://www.baidu.com/");

HttpHost proxy = new HttpHost("125.70.13.77", 8080);
httpGet.setConfig(RequestConfig.custom()
                  .setSocketTimeout(30000)
                  .setConnectTimeout(30000)
                  .setProxy(proxy)
                  .build());

CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpClientContext context = HttpClientContext.create();

CloseableHttpResponse response = httpClient.execute(httpGet, context);

HttpEntity entity = response.getEntity();
String htmlData = EntityUtils.toString(entity, "utf-8");

Document document = Jsoup.parse(htmlData);

Elements select = document.select("a");

for (Element element : select) {
    System.out.println(element);
}
目录
相关文章
|
4月前
|
数据采集 存储 NoSQL
建筑业数据挖掘:Scala爬虫在大数据分析中的作用
建筑业数据挖掘:Scala爬虫在大数据分析中的作用
|
数据采集 数据可视化 数据挖掘
数据挖掘微博:爬虫技术揭示热门话题的趋势
微博是中国最大的社交媒体平台之一,每天有数亿用户在上面发表自己的观点、分享自己的生活、参与各种话题。微博上的热门话题反映了用户的关注点和社会的动态,对于分析舆情、预测市场、探索文化等方面都有重要的价值。本文将介绍如何使用爬虫技术从微博上抓取热门话题的数据,并通过可视化的方式展示热门话题的变化趋势。
293 0
数据挖掘微博:爬虫技术揭示热门话题的趋势
|
Python 数据采集 数据挖掘
带你读《Python金融大数据挖掘与分析全流程详解》之二:金融数据挖掘之爬虫技术基础
本书以功能强大且较易上手的Python语言为编程环境,全面讲解了金融数据的获取、处理、分析及结果呈现。全书共16章,内容涉及Python基础知识、网络数据爬虫技术、数据库存取、数据清洗、数据可视化、数据相关性分析、IP代理、浏览器模拟操控、邮件发送、定时任务、文件读写、云端部署、机器学习等,可以实现舆情监控、智能投顾、量化金融、大数据风控、金融反欺诈模型等多种金融应用。
|
Web App开发 数据采集 数据挖掘
Python数据挖掘(爬虫强化)
(我喜欢雨天,因为雨天我可以回到童年踩水花!哈!) 2018年 --7月--12日 : 多云又暴雨 T—T 前言 我要把爬虫的终极利器介绍一下,这个只要是我们肉眼能看到的,就算在源码中或者在json中,或是post也无法得到的数据,我们都可以获取到,雷同F12后源码暴露在你面前一样! 这次需要用到selenium家族的一些成员,它们各司其职,各个身怀绝技。
1482 0
|
存储 数据采集 算法
数据挖掘敲门砖--Python爬虫入门
Python爬虫.jpg WHAT 数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大。 数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能(不仅于此) 数据分析方向:需要数理知识支撑,比如概率论,统计学等 数据挖掘方向:需要懂得主流算法的原理及应用,数据库的原理和操作 科学研究方向:通常是科学家们在深入研究数据挖掘的相关基础理论和算法 但是看完简介,好像和爬虫没什么关系? 接着往下看。
2503 0

热门文章

最新文章