Python 自动刷博客浏览量

原创 2016年05月26日 19:47:28

哈哈,今天的话题有点那什么了哈。咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧。


思路来源

今天很偶然的一个机会,听到别人在谈论现在的“刷量”行为,于是就激发了我的好奇心。然后看了下requests模块正好对我有用,就写了一个简单的测试用例。神奇的发现这一招竟然是管用的。那还等什么,开刷咯。

前奏

思路很简单,就是一个发送请求的实现,就可以了。代码如下:

headers = {
    'referer':'http://blog.csdn.net/',
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}

def getHtml(url,headers):
    req = urllib2.Request(url,headers=headers)
    page = urllib2.urlopen(req)
    html = page.read()
    return html

我们手动的添加一下目标url以及一个headers就可以了。我自然的会用自己的做下测试咯。
代码试着运行了一下,确实是可以增加浏览量滴。

慢增长

既然这样的方案是可行的,那就说明思路是正确的了。于是我们自然会想到写一个循环吧。这样不就能实现大量的浏览的增加了吗?
是的,我确实是这样干的。代码如下:

i= 0
while i < 10:
    url = 'http://blog.csdn.net/marksinoberg/article/details/51501377'
    getHtml(url,headers)

刚开始的时候,可以明显的看到博客数量的增加,(^__^) 嘻嘻……初见成效咯。但是好景不长,我发现浏览量增加了10次之后。就呵呵了。


然后就不能增加了,估计是服务器对我这个访问做了一定的限制了,否则按理说应该是可行的。

想方设法对坑

俗话说“上有政策,下有对策”,我自然不能受这个约束啊,于是我就猜想是对我的IP进行了记录。然后对我的访问次数添加了一些限制。
我的解决办法:

  • 代理IP进行访问:但是考虑到没有服务器,所以代理不了IP进行访问了。

  • 改变IP:既然是这样,那我就想办法改变自己的ip来进行访问呗。那么怎么改变自己的IP呢?(现在想想好后悔,当时计算机网络没有好好听课,IP欺骗没有学好,否则现在不就可以用了嘛)。但是条条大路通罗马嘛,我还有其他的方法。如下:

C:\Users\Administrator>ipconfig /release

Windows IP 配置

不能在 本地连接 上执行任何操作,它已断开媒体连接。

无线局域网适配器 无线网络连接:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::1d9f:d97b:fd16:1f6f%
   默认网关. . . . . . . . . . . . . :

以太网适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . : OurEDA.cn

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::359d:e81d:741:f257%1
   IPv4 地址 . . . . . . . . . . . . : 192.168.229.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::94b1:d10f:b68:101d%1
   IPv4 地址 . . . . . . . . . . . . : 192.168.244.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VirtualBox Host-Only Network:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::a5eb:545c:7d89:9451%
   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

隧道适配器 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{1860C94E-1007-4418-9A26-7D8AA8F06E15}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.OurEDA.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.dlut.edu.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

C:\Users\Administrator>ipconfig /renew

Windows IP 配置

不能在 本地连接 上执行任何操作,它已断开媒体连接。

无线局域网适配器 无线网络连接:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::1d9f:d97b:fd16:1f6f%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.58.70
   子网掩码  . . . . . . . . . . . . : 255.255.252.0
   默认网关. . . . . . . . . . . . . : 192.168.56.1

以太网适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . : OurEDA.cn

以太网适配器 VMware Network Adapter VMnet1:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::359d:e81d:741:f257%14
   IPv4 地址 . . . . . . . . . . . . : 192.168.229.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VMware Network Adapter VMnet8:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::94b1:d10f:b68:101d%15
   IPv4 地址 . . . . . . . . . . . . : 192.168.244.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

以太网适配器 VirtualBox Host-Only Network:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::a5eb:545c:7d89:9451%16
   IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :

隧道适配器 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{1860C94E-1007-4418-9A26-7D8AA8F06E15}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.OurEDA.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.dlut.edu.cn:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

是的,想必大家都看到了。核心的两个命令就是

// 更改路由表的配置
ipconfig / release // 释放网络,
ipconfig /renew    //  重新分配IP

这样基本上对于改变自己的IP是有点效果的。尤其是对局域网用户而言。

所以,我只需要在Python代码中调用系统的cmd命令,就可以动态的改变自己的IP了。也就达成了我的需求了

难题

虽然IP的问题解决了,但是这样刷的话,还是太慢。因为路由表的更新时需要时间的。而这和代码运行的速度比起来,真的是太慢太慢了。而且每次只能刷出十个浏览量,额。确实是比较的尴尬啊。费了这么大的劲,才刷了十个浏览量。怎么解决这个问题呢?

我其实也没有真正的解决这个问题,但是我发现这个限制也是不特别的强,因为我中途吃了个饭,回来的时候就发现原来的IP又可以刷了。大概45分钟左右的间隔吧!这是个突破点。

源码

其实思路很简单,就是想方设法的针对问题解决问题。不管对方的系统多么的坚固,也不可能是天衣无缝,总会有一种解决的办法的。下面是代码。

# coding:utf-8

#    __author__ = 'Mark sinoberg'
#    __date__ = '2016/5/26'
#    __Desc__ =  测试测试  刷新自己的博客的浏览量

import urllib2,re
from bs4 import BeautifulSoup

def getHtml(url,headers):
    req = urllib2.Request(url,headers=headers)
    page = urllib2.urlopen(req)
    html = page.read()
    return html

def parse(data):
    content = BeautifulSoup(data,'lxml')
    return content

def getReadNums(data,st):
    reg = re.compile(st)
    return re.findall(reg,data)

url = 'http://blog.csdn.net/marksinoberg/article/details/51493318'
headers = {
    'referer':'http://blog.csdn.net/',
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36'
}
i = 0
while i<24:
    html = getHtml(url,headers)
    content = parse(html)
    result = content.find_all('span',class_='link_view')
    print result[0].get_text()
    i = i +1

代码运行结果:

D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/ulib2/AddWatcher.py
94人阅读
95人阅读
96人阅读
97人阅读
98人阅读
99人阅读
100人阅读
101人阅读
102人阅读
103人阅读
104人阅读
105人阅读
106人阅读
107人阅读
108人阅读
109人阅读
110人阅读
111人阅读
112人阅读
113人阅读
114人阅读
115人阅读
115人阅读
115人阅读

Process finished with exit code 0

比较好的地方就是使用了BeautifulSoup抓取了特定位置的数据,这里是对浏览量的抓取。从上面的结果也可以看出,一个IP抓取的数据量是有限制的,一般来说是10~30个,这里貌似是22次访问。

展望

其实我是可以做到一次运行多次刷新的效果的,但是这样做不是特别的正派,所以我就说一下自己的思路吧。

  • 对result(浏览量结果)做判断,当出现连续的两次结果一致的时候,开启python执行cmd命令,更新自己的IP。但是这是个耗时操作,可以放到一个线程里面

  • 再就是对自己的博客list界面进行抓取,获得自己的所有的博文。当然,这里很明显会使用到模拟登陆。我之前写过一个模拟登陆的博文,有需要的可以参考一下。模拟登陆。然后对每一个博客进行刷量。这样虽然没有真正的解决问题,但是积少成多,也会起到一个不错的效果。

  • 做一个定时刷量的线程,每隔XX时间刷新一遍。这样一天下来,一篇文章大概也能实现几百的访问吧。(我没试过,我也不知道)

  • 等等吧

    写在最后的话

    使用代码来提高自己的博客访问量的行为时可耻的,在这里我首先做一下自我检讨。但是我是以解决问题的角度来看待这件事的,所以我很高兴能和大家分享。
    貌似并没有从根本上解决浏览量刷新的问题,想出了的也是几个弥补性质 的方案。如果大家有好的建议,欢迎留下你的评论。

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。转载时请标注http://blog.csdn.net/marksinoberg.

相关文章推荐

奉劝大家不要再用刷流量软件刷新浪博客等级了

在所有博客中,新浪博客是权重最高的博客,高权重的博客发表文章百度能秒收,并且博客的外链质量都很高。很多人养博客是为了以后在博客中添加外链,以此来提高自己网站的流量,提升权重。而一个高权重的博客不是一朝...
  • biocq
  • biocq
  • 2015年07月04日 21:40
  • 2782

如何刷博客的访问量

当然,很多童鞋都喜欢刷自己的博客访问量,这样可以获得神奇的C币,可以兑换N and N的好东西。今天,博主普及大家的知识,当然,不可以学习以后乱搞,不然就是不正当的行为了。其实刷博客的访问量很简单,只...

python爬虫之csdn刷博客访问量

首先声明:刷博客可耻!!!我们通过博客记录技术之路上的点滴,写博客的目的是分享自己的经验,从而让看博客的人少走弯路或找到解决问题的方法。如果我们仅仅是为了访问量来写博客,那就侮辱了博客本身存在的意义!...

【python脚本】-刷CSDN博客流量

本脚本可以通过打开CSDN博客页面,来增加博客访问量。写此脚本纯粹是为了练手,想要增加访问量,写出高质量的文章才是王道。脚本如下: #!usr/bin/python # -*- coding: ut...

PYTHON实现刷流量工具

PYTHON作为网络操作很灵活的脚本语言,理应实现起来很容易,尝试了下具体的实现 import urllib2 url = 'http://blog.csdn.net/boksic/article/...
  • boksic
  • boksic
  • 2013年11月23日 15:21
  • 6172

Python 刷高博客阅读量

【事情起因】     前段时间我开始写博客,后来发现博客文章的阅读量实际上是文章对应网页的被打开次数。于是我有了个想法:可不可以写一个程序,让她不断访问某篇文章的页面,以此刷高博客的阅读量呢?要回答这...

Python一日一练05----怒刷点击量

自动获取CSDN文章列表,并对每篇文章增加点击量.

利用python如何刷访问量

刚刚闲着无聊,看着自己写的博客的访问量低的可怜,竟有一种想要刷的感觉。人就应该这样敢想敢做!下面是我的python代码,写的比较粗糙,各位看官看看就好。不过话说回来,刷完我就有深深的愧疚感,我们不应该...

Python 刷网页访问量

额……有这种想法,感觉自己坏坏哒……其实,自己刚开始写CSDN博客,看到朋友们的博客访问量都达到几十万几百万了,而自己刚开始写,一星期过去了访问量才两位数,好拙计啊……说白了还是自己的虚荣心在作怪……...

用python脚本24小时刷浏览器的访问量

# -*- coding=utf-8 -*- import urllib2 import socket import time urls = raw_input("Please enter a w...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python 自动刷博客浏览量
举报原因:
原因补充:

(最多只允许输入30个字)