java爬虫(jsoup)如何设置HTTP代理ip爬数据
目录
前言
什么是HTTP代理IP
使用Jsoup设置HTTP代理IP的步骤
1. 导入Jsoup依赖
2. 创建HttpProxy类
3. 设置代理服务器
4. 使用Jsoup进行爬取
结论

前言
在Java中使用Jsoup进行网络爬虫操作时,有时需要使用HTTP代理IP来爬取数据。本文将介绍如何使用Jsoup设置HTTP代理IP进行爬取,并提供相关代码示例。
什么是HTTP代理IP
HTTP代理IP是一种允许我们通过代理服务器访问互联网的方式。一般情况下,我们访问网站时,直接使用自己的IP地址进行通信。但当我们需要隐藏真实IP、提高安全性或绕过一些访问限制时,可以通过HTTP代理服务器中转请求,使得请求看起来是由代理服务器发出的。
使用Jsoup设置HTTP代理IP的步骤
使用Jsoup设置HTTP代理IP进行爬取的步骤如下:
1. 导入Jsoup依赖
在项目中添加Jsoup的依赖,可以通过Maven或Gradle进行添加。以下是使用Maven添加Jsoup依赖的示例:
<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.1</version>
</dependency>
2. 创建HttpProxy类
创建一个名为HttpProxy的类,用于设置HTTP代理IP。该类可以包含IP地址、端口号、用户名、密码等信息。
public class HttpProxy {private String ip;private int port;private String username;private String password;// 构造方法、getter和setter省略
}
3. 设置代理服务器
在爬取数据之前,需要设置代理服务器。可以通过使用System.setProperty()方法来设置Java系统属性,指定代理服务器的信息。
public class Main {public static void main(String[] args) {HttpProxy proxy = new HttpProxy("127.0.0.1", 8888, "", "");setProxy(proxy);// 爬取数据的代码}private static void setProxy(HttpProxy proxy) {System.setProperty("http.proxyHost", proxy.getIp());System.setProperty("http.proxyPort", String.valueOf(proxy.getPort()));System.setProperty("https.proxyHost", proxy.getIp());System.setProperty("https.proxyPort", String.valueOf(proxy.getPort()));if (!proxy.getUsername().isEmpty() && !proxy.getPassword().isEmpty()) {Authenticator.setDefault(new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(proxy.getUsername(), proxy.getPassword().toCharArray());}});}}
}
4. 使用Jsoup进行爬取
通过设置代理服务器后,即可使用Jsoup进行爬取数据。以下是一个简单的示例:
public class Main {public static void main(String[] args) throws IOException {String url = "https://example.com";HttpProxy proxy = new HttpProxy("127.0.0.1", 8888, "", "");setProxy(proxy);Document document = Jsoup.connect(url).get();System.out.println(document);}private static void setProxy(HttpProxy proxy) {// 设置代理服务器的代码}
}
以上代码示例中,首先设置了代理服务器信息,然后使用Jsoup的connect()方法连接指定的URL,并使用get()方法获取页面内容。获取到的内容可以通过Document对象进行解析和处理。
结论
使用Jsoup进行网络爬虫操作时,有时需要使用HTTP代理IP来爬取数据。通过设置Java系统属性和使用Jsoup的connect()方法,我们可以很方便地设置HTTP代理IP进行爬取。本文提供了完整的代码示例,希望对你理解如何设置HTTP代理IP进行爬虫操作有所帮助。
相关文章:
java爬虫(jsoup)如何设置HTTP代理ip爬数据
目录 前言 什么是HTTP代理IP 使用Jsoup设置HTTP代理IP的步骤 1. 导入Jsoup依赖 2. 创建HttpProxy类 3. 设置代理服务器 4. 使用Jsoup进行爬取 结论 前言 在Java中使用Jsoup进行网络爬虫操作时,有时需要使用HTTP代理IP来爬取数据。本文将介绍如何使用Jsoup设…...
ZooKeeper Client API 安装及使用指北
下载 wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.4-beta/zookeeper-3.5.4-beta.tar.gz解压 tar -zxf zookeeper-3.5.4-beta.tar.gz安装 cd zookeeper-3.5.4-beta/src/c/ ./configure make sudo make install到 make 这一步大概率会出现报错:…...
本机ping不通虚拟机
windows下finall shell连不上虚拟机了,之前是可以的,然后ping虚拟机,发现也ping不通,随后到处找问题。 在本地部分,控制面板 ——>网络和Internet——>网络连接 , 可以看到 VMnet1和Vmnet8虽然都是已…...
Linux cfdisk命令
Linux cfdisk命令用于磁盘分区。 cfdisk是用来磁盘分区的程序,它十分类似DOS的fdisk,具有互动式操作界面而非传统fdisk的问答式界面,您可以轻易地利用方向键来操控分区操作。 语法 cfdisk [-avz][-c <柱面数目>-h <磁头数目>-…...
实用学习网站和资料
github:https://github.com/GitHubDaily/GitHubDaily Linux操作手册: GitHub - abarrak/linux-sysops-handbook: Essentials of Linux system administration. 从零开始制作一个操作系统: GitHub - ruiers/os-tutorial-cn: 从零开始编写一个操作系统…...
【已解决】c++qt如何制作翻译供程序调用
本博文源于笔者正在编写的工具需要创建翻译文件,恰好将qt如何进行翻译,从零到结果进行读者查阅,并非常推荐读者进行收藏点赞,因为步步都很清晰,堪称胎教式c制作,而且内容还包括如何部署在windows下。堪称值…...
DPDK单步跟踪(3)-如何利用visual studio 2019和visual gdb来单步调试dpdk
准备工作 因为时间的关系,我想到哪说到哪,可能没那么高的完成度。 但其实有心的人,看到这个标题,就关了本文自己能做了。 why和how to build debug version DPDK,见前两篇。这里我们准备开始。 首先,你有一台linux机…...
Python爬虫---解析---BeautifulSoup
BeautifulSoup简称:bs4 作用:解析和提取数据 1. 安装:pip install bs4 或pip install bs4 -i https://pypi.douban.com/simple(使用国内镜像下载) 注意:需要安装在python解释器相同的位置,例如…...
Argument list too long when copying files
for i in /path/to/dir/*; do cp "$i" /path/to/other/dir/; done...
configure
configure 配置软件./configure --prefix$PWD/output CCaarch64-linux-gcc --hostaarch64-linux --enable-shared --enable-staticconfig.sub 文件 这个文件用于确定主机系统的类型,并返回与该系统相关的标识符。它包含一系列 shell 函数,用于检测主机…...
HOJ 项目部署-前端定制 默认勾选显示标签、 在线编辑器主题和字号大小修改、增加一言功能 题目AC后礼花绽放
# 项目拉取地址: https://gitee.com/himitzh0730/hoj.git # 切换到hoj-vue目录执行以下命令 #安装依赖 npm install #运行服务 npm run serve #修改代码后构建项目到dist文件夹,到服务器docker-compose.yml中修改hoj-frontend文件映射即可 npm run build…...
Scikit-Learn线性回归(二)
Scikit-Learn线性回归二:多项式回归 1、多项式回归2、多项式回归的原理3、Scikit-Learn多项式回归3.1、Scikit-Learn多项式回归API1、多项式回归 线性回归研究的是一个自变量与一个因变量之间的回归问题。在实际应用中,并不是所有的情景都符合线性关系,大多数情况都是非线性…...
07 Vue3框架简介
文章目录 一、Vue3简介1. 简介2. 相关网站3. 前端技术对比4. JS前端框架5. Vue核心内容6. 使用方式 二、基础概念1. 创建一个应用2. 变量双向绑定(v-model)3. 条件控制(v-if)4. 数组遍历(v-for)5. 绑定事件…...
前端八股文(js篇)
一.强制类型转换规则 首先需要了解隐式转换所调用的函数。 当程序员显示调用Boolean(value),Number(value),String(value)完成的类型转换,叫做显示类型转换。 当通过new Boolean&…...
windows+ubuntu离线安装翻译软件有道词典
背景: 某些情况下,需要在无法连接互联网的电脑上翻译单词,句子以及段落,就需要能离线安装和翻译的翻译软件,具备一定的词库量,目前找到了《有道词典》。 windows 亲测,无法联网的win10中安装…...
DevC++ easyx实现视口编辑,在超过屏幕大小的地图上画点,与解决刮刮乐bug效果中理解C语言指针的意义
继上篇文案, DevC easyx实现地图拖动,超过屏幕大小的巨大地图的局部显示在屏幕的方法——用悬浮窗的原理来的实现一个视口-CSDN博客 实现了大地图拖动,但是当时野心不止,就想着一气能搓啥就继续搓啥,看着地图移动都搓…...
Kali Linux—借助 SET+MSF 进行网络钓鱼、生成木马、获主机shell、权限提升、远程监控、钓鱼邮件等完整渗透测试(一)
社会工程学—世界头号黑客凯文米特尼克在《欺骗的艺术》中曾提到,这是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。 SET最常用的攻击方法有:用恶意附件对目标进行 E-mail 钓鱼攻击、Java Applet攻…...
时间与时间戳转换及android和ios对时间识别的区别
注意: "2021-05-01 12:53:59.55" 时间对象在 ios 中会出现 NaN-NaN1-NaN 需要将对象格式化为:"2021/05/01 12:53:59.55" 可同时兼容 android 和 ios。 //将某时间转时间戳 /* var time new Date("2021-05-01 12:53:59.55&qu…...
飞天使-k8s知识点7-kubernetes升级
文章目录 验证新版本有没有问题需要安装的版本微微 1.20.6.0kubeadm upgrade plan 验证新版本有没有问题 查看可用版本的包 现有的状态 查看版本 yum list kubeadm --showduplicates |grep 1.20 yum list kubelet --showduplicates |grep 1.20 yum list kubectl --showduplic…...
【Unity游戏制作】游戏模型导入之前需要注意的三个基本点
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
