首页 后端开发 php教程 使用线程和httpclient刷浏览量的方法

使用线程和httpclient刷浏览量的方法

Mar 05, 2018 am 10:50 AM
httpclient ie 浏览量

这里我就在想一个请求嘛,我验证请求一次,浏览量增加1。于是我就按F5刷新,但是实际上并不是每次都增加,继续验证发现多过会再按F5就增加1了。到这里基本特征分析完毕,亲,你有思路了吗?我这里想到以前的爬虫,不就是请求页面,得到返回的html再解析字符串嘛。所以我也借鉴这个思想,使用服务端请求链接,然后剩下的就是这个等待时间,如果不管一直刷,可能会有恶意请求的嫌疑,这是要被封号的。那么这个场景适合什么技术了,大家think到没?没错,可以用线程,设置每次请求后的sleep时间。

那么大致思路就明确了:httpClient发请求,线程控制停顿时间。废话不说了,我就上代码了:

上面这个main大家应该熟的很,我这里的想法就是线程类里有三个变量,我使用前,new出来后先设置好变量,便于后期线程run方法里使用。这里跟大家补充下多线程实现的4中方式,这个之前好像也写了博文提到过。

多线程的实现有4种方式,很多都至说前面两种,不带返回值的。

1、继承Thread类创建线程

Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MyThread extends Thread {    public void run() {     System.out.println("MyThread.run()");    }  }   MyThread myThread1 = new MyThread();  MyThread myThread2 = new MyThread();  myThread1.start();  myThread2.start();  

2、实现Runnable接口创建线程

如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口,如下:

public class MyThread extends OtherClass implements Runnable {    public void run() {     System.out.println("MyThread.run()");    }  }  

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

MyThread myThread = new MyThread();  Thread thread = new Thread(myThread);  thread.start();  

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

public void run() {    if (target != null) {     target.run();    }  }  

3、实现Callable接口通过FutureTask包装器来创建Thread线程

Callable接口(也只有一个方法)定义如下:   

public interface Callable   {   V call() throws Exception;   }

public class SomeCallable extends OtherClass implements Callable {    @Override    public V call() throws Exception {        // TODO Auto-generated method stub        return null;    }}

Callable oneCallable = new SomeCallable();   //由Callable创建一个FutureTask对象:   FutureTask oneTask = new FutureTask(oneCallable);   //注释:FutureTask是一个包装器,它通过接受Callable来创建,它同时实现了Future和Runnable接口。   //由FutureTask创建一个Thread对象:   Thread oneThread = new Thread(oneTask);   oneThread.start();   //至此,一个线程就创建完成了。

4、使用ExecutorService、Callable、Future实现有返回结果的线程

ExecutorService、Callable、Future三个接口实际上都是属于Executor框架。返回结果的线程是在JDK1.5中引入的新特征,有了这种特征就不需要再为了得到返回值而大费周折了。而且自己实现了也可能漏洞百出。

可返回值的任务必须实现Callable接口。类似的,无返回值的任务必须实现Runnable接口。

执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了。

注意:get方法是阻塞的,即:线程无返回结果,get方法会一直等待。

再结合线程池接口ExecutorService就可以实现传说中有返回结果的多线程了。

言归正传,我这里使用的是第一种,因为我不需要返回值。


这里面加入的是可以多个地址刷的思路,以及奇偶分请求方式,避免每次都是同一种请求方式,规避被系统列为恶意请求的风险。以及休眠时间可以在main设置。下面就来看看刷之前的阅读量:


昨天晚上是写完这个我就去睡了,电脑都没有关,看看这一晚上请求到多少次了:


然后,我现在刷新下列表页,重新看看阅读量:


看到没,阅读量现在已经是600多了,原先才300多。

这里因为ip一直都是这个,所以中间的sleep时间有点长,如果能有ip供切换,加入切换逻辑,效果会更好。

理论上来说所有的阅读量都是可以用这个刷的,当然要客户端没有做比较严格的同ip请求多次至算阅读1次等策略。百度文库的那些文章我不找到怎么评为优秀文档的,但是我想跟请求量肯定有一定关系,大家有机会可以按照这个思路试试。可以改造下搞两个线程,交替进行,一个线程刷一个网站,哈哈。
不过如果封号了不要怪我,呵呵。

相关推荐:

使用thinkPHP+ajax实现统计页面pv浏览量的方法

以上是使用线程和httpclient刷浏览量的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
增加抖音浏览量的方法有哪些?有哪些技巧? 增加抖音浏览量的方法有哪些?有哪些技巧? Mar 07, 2024 pm 08:07 PM

随着社交媒体的普及和发展,抖音已成为许多人展示自己才华和获得关注的平台。然而,虽然发布视频很容易,但要想获得大量浏览量并不是一件容易的事情。那么,如何增加抖音浏览量呢?下面将介绍一些有效的方法和技巧。一、增加抖音浏览量的方法1.精心挑选内容:选择高质量、引人入胜、别具一格的内容对于吸引观众至关重要。持续创新并提供有益信息,能够激发观众的兴趣,促使他们愿意与他人分享。利用流行话题可以帮助您在抖音上获得更多的关注和观众。抖音经常出现一些流行话题或挑战,您可以参与其中,让您的视频更容易被人发现。关注热

使用Java 11中的HttpClient发送HTTP请求并处理响应 使用Java 11中的HttpClient发送HTTP请求并处理响应 Aug 01, 2023 am 11:48 AM

标题:使用Java11中的HttpClient发送HTTP请求并处理响应引言:在现代的互联网应用程序中,与其他服务器进行HTTP通信是非常常见的任务。Java提供了一些内置的工具,可以帮助我们实现这一目标,其中最新且推荐使用的是Java11中引入的HttpClient类。本文将介绍如何使用Java11中的HttpClient发送HTTP请求并处理响应,

Internet Explorer 打开 Edge:如何停止 MS Edge 重定向 Internet Explorer 打开 Edge:如何停止 MS Edge 重定向 Apr 14, 2023 pm 06:13 PM

长期以来,InternetExplorer的失宠一直不是秘密,但随着Windows11的到来,现实开始了。Edge将来不再有时取代IE,它现在是微软最新操作系统中的默认浏览器。目前,您仍然可以在Windows11中启用InternetExplorer。但是,IE11(最新版本)已经有了一个正式的退役日期,即2022年6月15日,时间在流逝。考虑到这一点,您可能已经注意到InternetExplorer有时会打开Edge,而您可能不喜欢它。那么为什么会这样呢?在

播放量就是浏览量吗 播放量就是浏览量吗 Sep 08, 2023 pm 02:28 PM

播放量不是浏览量,是两个不同的概念,播放量是指媒体内容被播放的次数,它通常用于衡量媒体内容的受欢迎程度和观众的兴趣程度,播放量可用于衡量视频网站、音乐平台、社交媒体等在线平台上的内容观看次数。浏览量是指网页、网站或应用程序的页面被访问的次数,它通常用于衡量网站或应用程序的流量和用户的活跃度,浏览量可用于评估网站的流量、广告的曝光量以及用户对特定内容的兴趣程度。

如何使用golang中的http.Client进行HTTP请求的高级操作 如何使用golang中的http.Client进行HTTP请求的高级操作 Nov 18, 2023 am 11:37 AM

如何使用golang中的http.Client进行HTTP请求的高级操作引言:在现代开发中,HTTP请求是不可避免的一部分。golang提供了强大的标准库,其中包含了http包。http包提供了http.Client结构体,用于发送HTTP请求和接收HTTP响应。在本文中,我们将探讨如何使用http.Client进行HTTP请求的高级操作,并提供具体的代码示

靠AI六小时搞出蝙蝠侠动画电影,小哥喜提百万浏览量 靠AI六小时搞出蝙蝠侠动画电影,小哥喜提百万浏览量 Apr 11, 2023 pm 03:10 PM

用ChatGPT和MidJourney制作动画电影,6小时足矣。一位名叫Ammaar Reshi的湾区设计师用上述两个生成AI模型,成功做出一部蝙蝠侠的动画小电影,效果也是相当可。片头雷鸣电闪,直接把蝙蝠侠阴郁暗黑风格拿捏住了,还挺有蒂姆・波顿调调:室内场景也颇具质感,蝙蝠标志细节好评:蝙蝠侠现身,瓢泼大雨和由近到远的蝙蝠,特效跟台词呼应:目前,该视频在推特已吸引150万浏览量,且还在快速增长。有网友表示:太酷了,其他超级英雄请求出战。有网友跟着作者指引,自己也做了一个,效果似乎更好:还有网友皮

win11无法使用ie11浏览器怎么办?(win11用不了ie浏览器) win11无法使用ie11浏览器怎么办?(win11用不了ie浏览器) Feb 10, 2024 am 10:30 AM

越来越多的用户开始升级win11系统,由于每个用户的使用习惯不同,还是有不少用户在使用ie11浏览器,那么win11系统用不了ie浏览器,该怎么办呢?windows11还支持ie11吗?下面就来看看解决办法。win11无法使用ie11浏览器的解决方法1、首先右键开始菜单,选择“命令提示符(管理员)”打开。2、打开之后,直接输入“Netshwinsockreset”,回车确定。3、确定之后再输入“netshadvfirewallreset&rdqu

一个时代的结束:Internet Explorer 11 已退役,这是你需要知道的 一个时代的结束:Internet Explorer 11 已退役,这是你需要知道的 Apr 20, 2023 pm 06:52 PM

2022年6月15日是Microsoft结束对InternetExplorer11(IE11)的支持并关闭其旧版浏览器章节的日子。一段时间以来,该公司一直在提醒用户注意这一生命周期结束日期,并呼吁他们计划迁移到MicrosoftEdge。Microsoft将IE11与Windows8.1捆绑在一起,作为Windows的现代默认Web浏览器。尽管它从未达到Chrome的(当前)高度,但它是2014年使用量第二大的桌面浏览器,仅次于IE8。当然,随着20

See all articles