"); //-->
在互联网爬虫中经常会有想采集数据而出现反爬从而无法进行正常采集。当一个IP长时间反复去访问一个网站,就会触碰网站的反爬机制,如何解决这种,就需要降低访问频率或者使用更多的代理IP去访问。
首先需要配置爬虫程序,然后控制代理IP去访问目标网站
爬虫代理的使用:import java.io.IOException;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;public class Demo { public static void main(String[] args) { try{ // 代理服务器(产品官网 www.16yun.cn) final static String ProxyHost = "t.16yun.cn"; final static String ProxyPort = "31111"; System.setProperty("http.proxyHost", ProxyHost); System.setProperty("https.proxyHost", ProxyHost); System.setProperty("http.proxyPort", ProxyPort); System.setProperty("https.proxyPort", ProxyPort); // 代理验证信息 final static String ProxyUser = "username"; final static String ProxyPass = "password"; System.setProperty("http.proxyUser", ProxyUser); System.setProperty("http.proxyPassword", ProxyPass); System.setProperty("https.proxyUser", ProxyUser); System.setProperty("https.proxyPassword", ProxyPass); // 设置IP切换头 final static String ProxyHeadKey = "Proxy-Tunnel"; // 设置Proxy-Tunnel Random random = new Random(); int tunnel = random.nextInt(10000); String ProxyHeadVal = String.valueOf(tunnel); // 处理异常、其他参数 Document doc = Jsoup.connect(url).timeout(3000).header(ProxyHeadKey, ProxyHeadVal).get(); if(doc != null) { System.out.println(doc.body().html()); } }catch (IOException e) { e.printStackTrace(); } }}
爬虫用户需要注意代码里面4个参数,proxyHost、proxyPort、proxyUser、proxyPass 分别对应爬虫代理的域名、端口、用户名和密码,正式开启代理之后,将这4个变量设置一下,就可以直接复制demo运行
无论是什么爬虫语言框架,在采集数据的过程中都会面临IP被封、爬取受限、违法操作等许多问题,所以在爬取数据之前,需要了解好预爬网站是否涉及违法操作,找到合适的代理IP控制频率去访问网站等一系列问题。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。