CSDN博客自动访问

声明:本代码仅供学习娱乐。

1、采用线程访问

2、使用线程池和阻塞队列

<span style="font-size:18px;">import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URLConnection;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 *
 * 访问csdn博客,增加访问量,纯属娱乐
 * 采用多线程,增加访问速度
 */
public class CSDNBlog {
    public static void main(String[] args) throws Exception {
        for (int i = 0; i < 10; i++) {
            RequestBlogRun conn = new RequestBlogRun();
            Thread t = new Thread(conn);
            t.start();
        }
    }

    /**
     * 构造对博客的请求
     *
     */
    public static class RequestBlogRun implements Runnable {
        public static final String BLOG_URL = "http://blog.csdn.net/jinyingone/article/details/44084051";
        //请求的阻塞队列
        private BlockingQueue<HttpURLConnection> bq = new ArrayBlockingQueue<HttpURLConnection>(5);
        //请求的线程池
        private ExecutorService service = Executors.newFixedThreadPool(3);

        @Override
        public void run() {
            boolean flag = true;
            while (flag) {
                try {
                    URLConnection conn = URI.create(BLOG_URL).toURL().openConnection();
                    conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
                    conn.setConnectTimeout(20000);
                    HttpURLConnection httpConn = (HttpURLConnection) conn;
                    bq.put(httpConn);
                    service.execute(new ConnBlog(bq));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     *
     *实际访问blog
     */
    public static class ConnBlog implements Runnable {
        private static int i = 0;
        private BlockingQueue<HttpURLConnection> bq;
        public ConnBlog(BlockingQueue<HttpURLConnection> bq) {
            this.bq = bq;
        }
        public void run() {
            try {
                HttpURLConnection conn = bq.take();
                System.out.println("responseCode:"+conn.getResponseCode());
                i++;
                System.out.println("times:" + i);
                if(i > 1000000){
                    //为了提高效率,没有加锁,次数有出入
                    System.out.println("program finshed,will exit!");
                    System.exit(0);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
</span>

转载地址http://blog.csdn.net/jinyingone/article/details/44084051

时间: 2024-12-28 17:46:07

CSDN博客自动访问的相关文章

第一个Python程序——博客自动访问脚本

动机 今天有朋友写信说他认为自己的wordpress博客内显示的访问统计信息不正常,希望我能为他制造一些访问信息,供他对比.朋友提出的请求是在短时间内快速打开100个不同的博客页面,以便他从产生的访问量变化中理解博客访问数据. 本人作为一个搞计算机的人,有把任何重复性劳动自动化的冲动,所以虽然点开100个网页的任务手工做并不复杂,但还是从一开始就彻底否定了.刚好想学Python很久了,于是就拿这次的小机会来学习一把,顺便记录下第一次的Python学习成果. 本文使用Python 2.7.3实现了

[搬运自我的CSDN博客] python抓取javascript动态生成HTML内容的实践

<注:CSDN博客在美国访问特别卡,所以转移到cnblogs来发文章> 本实验在Ubuntu14.04上完成.使用的浏览器是火狐(Firefox 33.0),python版本是2.7.6. 大家都知道用urllib配合正则表达式抓取静态HTML的内容很方便,但是如果网页中有javascript动态生成的内容,urllib就无能为力了. 此时我们要借助一个额外的工具:selenium.它的工作原理是操纵(火狐)浏览器浏览目标网页,等待网页中的javascript全部执行完毕后再对HTML源码进行

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/

使用python爬取csdn博客访问量

最近学习了python和爬虫,想写一个程序练练手,所以我就想到了大家都比较关心的自己的博客访问量,使用python来获取自己博客的访问量,这也是后边我将要进行的项目的一部分,后边我会对博客的访问量进行分析,以折线图和饼图等可视化的方式展示自己博客被访问的情况,使自己能更加清楚自己的哪些博客更受关注,博客专家请勿喷,因为我不是专家,我听他们说专家本身就有这个功能. 一.网址分析 进入自己的博客页面,网址为:http://blog.csdn.net/xingjiarong 网址还是非常清晰的就是cs

走近CSDN博客Markdown编辑器

Markdown是什么 为什么使用Markdown Markdown的优点 全新的体验 如何切换到MarkDown编辑器 通过发表文章页面切换到MarkDown编辑器 通过博客配置将Markdown设置为默认编辑器 初识Markdown编辑器布局 总体布局 通过博客管理菜单可以切换到HTML编辑器 点击工具栏的帮助按钮可以打开帮助面板 发表博客 设置摘要和标签 文章设置 发布 Markdown是什么? Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成

Android应用开发-小巫CSDN博客客户端开发开篇

Android应用开发-小巫CSDN博客客户端开发开篇 2014年9月8日 八月十五 祝各位中秋节快乐 小巫断断续续花了几个星期的时间开发了这么一款应用--小巫CSDN博客,属于私人定制的这样的一款应用,整个客户端的数据全部来自本人博客,是通过爬取本人博客地址html页面,然后解析html把数据提取出来,整个客户端的技术难点主要是如何对html界面进行分析和使用Jsoup对html代码进行解析.目前本人的这款应用已经开发出来了,近段时间会提交应用商店进行审核,不久大家就可以看到这么一款逼格满满的

[python爬虫] Selenium爬取CSDN博客摘要及问题

本文主要是采用Selenium来爬取CSDN的博文摘要,为后面对CSDN的热点技术.近几年专家发表的博客作数据分析.由于采用BeautifulSoup爬取该网站会报错"HTTPError: Forbidden",所以作者采用Selenium爬取.同时,在爬取过程中遇到了局部动态更新的问题,无法定位换页的问题,作者采用Firebug进行分析,也希望读者提出更好的方法.代码下载地址: 一. CSDN博客网站分析及问题 本文主要爬取CSDN专家的博客,因为专家的论文水平相对高点,同时专栏较多

CSDN博客导出(C++实现)

操作系统:windowAll 编程工具:visual studio 2013 编程语言:VC++ 最近博文更新的较频繁,为了防止账号异常引起csdn博文丢失,所以花了点时间做了个小工具来导出博文,用做备份.本文将从源码分析整个实现过程.先看个截图: 操作步骤: 先在博客地址文本框输入博客地址例如:http://blog.csdn.net/yxstars/ 然后点击确定,将显示共有多少篇博文,例如:[19:32:47]博文113篇 点击文章列表:将显示所有博文,格式:title,href 点击导出

用angularjs在循环遍历中绑定ng-model(转载---CSDN博客 )

用angularjs在循环遍历中绑定ng-model CSDN博客 原文  http://blog.csdn.net/chen2991101/article/details/19764263 angularjs的双向绑定非常的好用,当修改了一个地方的值后另外一个地方也同步修改了,如果用平时的js来写的话需要写很多代码,但是用了angularjs后只需要几行代码就能轻松搞定. 想做一个类似于淘宝的改价的功能,就是当用户拍下了宝贝后卖家给你调价的那个功能,界面就像这样: 当修改了折扣或者直接填写了优