因为刚开始开博客并没有什么浏览量,所以心中一时想着怎么变成增加自己的浏览量,于是参考了网上的例子写了个程序,主要是用java访问指定的网页,当然只是一时兴起,没有恶意。
我开始只是采用简单的URL访问页面,但是一般网站会对这种纯爬虫或者类爬虫程序拒绝,我就是一开始被拒绝了,并被网站警告 ,因此,需要模拟浏览器访问才行,浏览器访问使用的HTTP协议,可以在程序中加入这个请求报头,至于报头内容,谷歌浏览器按F12后有个network选项,里面可以看到
说多了无用,直接上程序
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class visitWebsite { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; String urlNameString; try { if(!param.equals("")){ urlNameString = url + "?" + param; }else{ urlNameString=url; } URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性,浏览器请求报头,不然会被有的网站检测到恶性爬网页而被禁止访问 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } public static void main(String[]args) throws InterruptedException{ int i=0; while(i<1000){ visitWebsite.sendGet("http://the page you are going to visit", ""); /* * 一般网站如果检测到某个iP短时间内过频繁访问也会拒绝,因此这里设置每30秒请求一次 * * */ Thread.sleep(30*1000); i++; } } }
值得说明的是,即使这样,可以在一段时间内增加网站的访问量,但是我测试的网站还是会因为同一个IP在一段时间内过于频繁访问而被要求输入验证码,不然IP会被禁止访问,在输入验证码后会解禁IP,听说可以使用动态路由访问,这方面我不太熟,所以不做解释。
相关推荐
用java模拟访问浏览网站的代码,可以输出各种网页属性,以及html源代码
java 模拟 微信 浏览器访问web页面.
控制台程序模拟浏览器请求,一次流程请求4次,请求的url从文件中随机读取,每次请求之间随机停5秒以内,关闭控制台之前一直循环执行流程
php 模拟浏览器 请求网页见容
主要介绍了java后台调用HttpURLConnection类模拟浏览器请求实例,该实例可用于接口调用,具有一定的实用价值,需要的朋友可以参考下
python urllib or requests模块模拟浏览器获取网页内容
主要介绍了python爬虫模拟浏览器访问-User-Agent过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
js模拟浏览器 Ctrl+F 查找 + div层鼠标拖动 改变位置 两个功能demo js模拟浏览器 Ctrl+F 查找 + div层鼠标拖动 改变位置 两个功能demo js模拟浏览器 Ctrl+F 查找 + div层鼠标拖动 改变位置 两个功能demo js模拟...
最近遇到有些网页只能在VX等浏览器中显示,经查资料,发现有些插件可以实现自定义UA,chrome也有这样的功能,但还是感觉易里面实现更简单,只要调用精易...软件默认是谷歌浏览器UA,会出现下图的提示,要求在VX中访问。
http://www.xd-tech.com.cn/blog/article.asp?id=34<br><br>一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的...
数据结构课程设计模拟浏览器的操作,用栈的方式进行操作
Python爬虫之selenium模拟浏览器,通过selenium模拟浏览器操作,达到访问百度首页并搜索的目的
模拟浏览器打开相应网页
Selenium 模拟浏览器动态加载页面的实现方法
使用selenium模拟浏览器操作,包含登录操作,点击操作等
rar文件 模拟微信访问wap页面刷投票
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地
1.使用 urllib2 实现 #! /usr/bin/env python # -*- coding=utf-8 -*- import urllib2 ...req_header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 ...
JAVA-用HttpClient来模拟浏览器GET,POST.docx
自己是实现的一个小程序,可以实现登陆新浪微博的的功能呢