使用jsoup入门java爬虫 案例
1.导入依赖
<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.3</version> <!-- or latest version --></dependency>
2.静态工具类
public class ProxyIP {public static String getOne() throws IOException {String Proxyurl ="填入提取链接 一次获取一个 ";String ip = Jsoup.connect(Proxyurl).get().body().text();return ip;}}
3. 爬取页面信息
4.使用 Jsoup 爬取内容
package com.sgg.main;import com.sgg.main.proxy.ProxyIP;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;import java.io.IOException;
import java.net.Proxy;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;public class Index {public static void main(String[] args) throws IOException {ArrayList<String> urls = new ArrayList<>();ArrayList<String> names = new ArrayList<>();// 创建httpClient实例String indexUrl = "https://xxxxxxxxxx";Document document = Jsoup.connect(indexUrl).get();Elements article = document.getElementsByTag("article");article.forEach(new Consumer<Element>() {@Overridepublic void accept(Element element) {Node node = element.childNode(0);Node parentNode = node.childNode(0).childNode(0).parentNode();String nameUrl = parentNode.childNode(0).childNode(0).toString();names.add(nameUrl);Attributes attributes = node.attributes();urls.add(href);}});//开启线程ExecutorService executorService = Executors.newFixedThreadPool(urls.size());for (int i = 0; i < urls.size(); i++) {//每个连接地址使用一个线程int finalI = i;executorService.execute(() -> {while (true) {String[] split = null;try {split = ProxyIP.getOne().split(":");} catch (IOException e) {e.printStackTrace();}try {//搜索引擎搜索帖子 优化搜索排名String decode = URLEncoder.encode(names.get(finalI), "utf-8");// 搜索RULString searchUrl ="https:xxxxxxxxxxxx";Connection.Response search = Jsoup.connect(searchUrl).proxy(split[0], Integer.parseInt(split[1])).ignoreContentType(true).execute();Connection.Response response = Jsoup.connect(urls.get(finalI)).proxy(split[0], Integer.parseInt(split[1])).ignoreContentType(true).execute();System.out.println(names.get(finalI).substring(0,5)+" 搜索状态: "+search.statusCode()+" ---> "+urls.get(finalI).split("details/")[1] + " 访问状态 " + response.statusCode());try {TimeUnit.SECONDS.sleep(30+ new Random().nextInt(10));} catch (InterruptedException e) {}} catch (IOException e) {System.out.println(names.get(finalI).substring(0,5)+" "+urls.get(finalI).split("details/")[1] + " 访问出错了");System.out.println(e.getMessage());}}});}}}
使用jsoup入门java爬虫 案例相关推荐
- JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser
转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫 是爬sina 的数据,用的就是 htmlparser 可 ...
- JAVA爬虫案例——JSOUP爬取图片并使用v-viewer实现图片预览
前言 网络爬虫是大数据时代收集数据的一种有效手段,合理合法的运用技术手段获取网络数据,实现数据的再利用也是程序员的一项重要技能.本节我们使用java环境下的jsoup实现网络数据的爬取,主要是图片数据 ...
- java爬虫案例——SpringBoot使用HttpClient、Jsoup爬取京东手机数据
文章目录 前言 一.准备工作 二.项目文件 1.项目依赖 2.项目配置文件 3.pojo 4.dao接口 5.service接口及其实现类 6.HttpClient封装工具类 7.爬取任务实现 8.启 ...
- list的add方法 ,foreach循环添加map---List.add(map)(通过一个java爬虫案例说明)
案例:一个java爬虫程序 1.案例说明 做了一个爬取某程的旅游网站的java程序,程序主要爬取安庆酒店的某些相关信息. 材料准备:jsoup-1.8.1.jar(需要此架包的联系博主,有任何问题欢迎 ...
- Jsoup学习 JAVA爬虫爬取美女网站 JAVA爬虫爬取美图网站 爬虫
最近对爬虫起了兴趣,但是网上都说做爬虫最好得语言是py.但是我只会java,所以就想能不能用java实现一个爬虫,百度搜索发现,其实java也有很多优秀得开源爬虫框架,包括Gecco,webmagic ...
- 基于Jsoup的Java爬虫-爬取必应壁纸网站的壁纸(Java静态壁纸爬虫实例)
准备阶段 1.必应壁纸网站:https://bing.ioliu.cn(爬取对象网站) 2.Jsoup包下载地址:https://jsoup.org/download(以下代码需要用到该包,记得导入包 ...
- python3.6下载百度云_Python3.6零基础入门与爬虫案例开发教程
全网最热的Python3入门+进阶 第1章 Python入门导学 介绍Python的特性.优点.缺点.前景以及课程的内容.重点和特色. 第2章 Python环境安装 一键安装Python的编译环境,写 ...
- 格力与奥克斯空调在京东的选购指数(java爬虫案例-代码实现)
要么不做,要做就做完 此项目目录结构 项目分析 环境准备 开发准备 数据库表 添加依赖 添加配置文件 编写pojo 编写dao 编写service接口 service实现类 StringBoot引导类 ...
- 基于jsoup的java爬虫-爬取豆瓣小组租房信息
主要框架为springboot+mybatis+jsoup jsoup官方文档:https://www.open-open.com/jsoup/ 爬取的豆瓣网址为:https://www.douban ...
最新文章
- Spring.net使用说明
- Django 出现 “multiple primary key defined”报错
- PySide 简易教程三-------动手写起来
- Java 查看指定文件最后的修改时间
- 在线教育行业内容营销洞察白皮书(2021年版)
- 多功能网址导航源码 包含交易系统等多功能
- 新瓶旧酒ASP.NET AJAX(1) - 简单地过一下每个控件(ScriptManager、ScriptManagerProxy
- MongoDB学习笔记lt;七gt;
- Mac电脑:Android Studio 连接 MUMU 网易模拟器
- centos7 go yum 安装_Centos7.6从头开始安装nvidiadocker
- can't resolve symbol 'R' ...
- linux雨滴桌面,Rainmeter(雨滴桌面秀)
- PayPal支付开发
- 【计算机视觉】 opencv双目视觉 立体视觉 三维重建 之理论篇
- AmazeUI 图标的示例代码
- java基于springboot+vue的校园一卡通管理系统 ssm nodejs
- HTTP常见状态码 2xx 3xx 4xx 5xx
- 计算机创新论文特点,计算机应用技术的创新分析
- 管理软件开发的最高境界,那就是“无代码开发”
- 融360第三季度营收4.44亿 营销费用占比大幅降低