思路來源
今天很偶然的一個(gè)機(jī)會(huì),聽到別人在談?wù)摤F(xiàn)在的“刷量”行為,于是就激發(fā)了我的好奇心。然后看了下requests模塊正好對我有用,就寫了一個(gè)簡單的測試用例。神奇的發(fā)現(xiàn)這一招竟然是管用的。那還等什么,開刷咯。
前奏
思路很簡單,就是一個(gè)發(fā)送請求的實(shí)現(xiàn),就可以了。代碼如下:
headers = { 'referer':'http://VeVB.COm/', '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我們手動(dòng)的添加一下目標(biāo)url以及一個(gè)headers就可以了。我自然的會(huì)用自己的做下測試咯。
代碼試著運(yùn)行了一下,確實(shí)是可以增加瀏覽量滴。
慢增長
既然這樣的方案是可行的,那就說明思路是正確的了。于是我們自然會(huì)想到寫一個(gè)循環(huán)吧。這樣不就能實(shí)現(xiàn)大量的瀏覽的增加了嗎?
是的,我確實(shí)是這樣干的。代碼如下:
i= 0while i < 10: url = 'http://VeVB.COm/marksinoberg/article/details/51501377' getHtml(url,headers)
剛開始的時(shí)候,可以明顯的看到博客數(shù)量的增加,(^__^) 嘻嘻……初見成效咯。但是好景不長,我發(fā)現(xiàn)瀏覽量增加了10次之后。就呵呵了。
然后就不能增加了,估計(jì)是服務(wù)器對我這個(gè)訪問做了一定的限制了,否則按理說應(yīng)該是可行的。
想方設(shè)法對坑
俗話說“上有政策,下有對策”,我自然不能受這個(gè)約束啊,于是我就猜想是對我的IP進(jìn)行了記錄。然后對我的訪問次數(shù)添加了一些限制。
我的解決辦法:
C:/Users/Administrator>ipconfig /release
Windows IP 配置
不能在 本地連接 上執(zhí)行任何操作,它已斷開媒體連接。
無線局域網(wǎng)適配器 無線網(wǎng)絡(luò)連接:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::1d9f:d97b:fd16:1f6f%
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
以太網(wǎng)適配器 本地連接:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . : OurEDA.cn
以太網(wǎng)適配器 VMware Network Adapter VMnet1:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::359d:e81d:741:f257%1
IPv4 地址 . . . . . . . . . . . . : 192.168.229.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
以太網(wǎng)適配器 VMware Network Adapter VMnet8:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::94b1:d10f:b68:101d%1
IPv4 地址 . . . . . . . . . . . . : 192.168.244.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
以太網(wǎng)適配器 VirtualBox Host-Only Network:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::a5eb:545c:7d89:9451%
IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
隧道適配器 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.{1860C94E-1007-4418-9A26-7D8AA8F06E15}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.OurEDA.cn:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.dlut.edu.cn:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
C:/Users/Administrator>ipconfig /renew
Windows IP 配置
不能在 本地連接 上執(zhí)行任何操作,它已斷開媒體連接。
無線局域網(wǎng)適配器 無線網(wǎng)絡(luò)連接:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::1d9f:d97b:fd16:1f6f%12
IPv4 地址 . . . . . . . . . . . . : 192.168.58.70
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.252.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . : 192.168.56.1
以太網(wǎng)適配器 本地連接:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . : OurEDA.cn
以太網(wǎng)適配器 VMware Network Adapter VMnet1:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::359d:e81d:741:f257%14
IPv4 地址 . . . . . . . . . . . . : 192.168.229.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
以太網(wǎng)適配器 VMware Network Adapter VMnet8:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::94b1:d10f:b68:101d%15
IPv4 地址 . . . . . . . . . . . . : 192.168.244.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
以太網(wǎng)適配器 VirtualBox Host-Only Network:
連接特定的 DNS 后綴 . . . . . . . :
本地鏈接 IPv6 地址. . . . . . . . : fe80::a5eb:545c:7d89:9451%16
IPv4 地址 . . . . . . . . . . . . : 192.168.56.1
子網(wǎng)掩碼 . . . . . . . . . . . . : 255.255.255.0
默認(rèn)網(wǎng)關(guān). . . . . . . . . . . . . :
隧道適配器 isatap.{4F399971-B739-4B71-BD79-E48233EEC9BE}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.{1860C94E-1007-4418-9A26-7D8AA8F06E15}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.OurEDA.cn:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.dlut.edu.cn:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
隧道適配器 isatap.{6F7F27ED-942E-4EFB-ACF2-A4E8793B161D}:
媒體狀態(tài) . . . . . . . . . . . . : 媒體已斷開
連接特定的 DNS 后綴 . . . . . . . :
是的,想必大家都看到了。核心的兩個(gè)命令就是
// 更改路由表的配置ipconfig / release // 釋放網(wǎng)絡(luò),ipconfig /renew // 重新分配IP
這樣基本上對于改變自己的IP是有點(diǎn)效果的。尤其是對局域網(wǎng)用戶而言。
所以,我只需要在Python代碼中調(diào)用系統(tǒng)的cmd命令,就可以動(dòng)態(tài)的改變自己的IP了。也就達(dá)成了我的需求了
難題
雖然IP的問題解決了,但是這樣刷的話,還是太慢。因?yàn)槁酚杀淼母聲r(shí)需要時(shí)間的。而這和代碼運(yùn)行的速度比起來,真的是太慢太慢了。而且每次只能刷出十個(gè)瀏覽量,額。確實(shí)是比較的尷尬啊。費(fèi)了這么大的勁,才刷了十個(gè)瀏覽量。怎么解決這個(gè)問題呢?
我其實(shí)也沒有真正的解決這個(gè)問題,但是我發(fā)現(xiàn)這個(gè)限制也是不特別的強(qiáng),因?yàn)槲抑型境粤藗€(gè)飯,回來的時(shí)候就發(fā)現(xiàn)原來的IP又可以刷了。大概45分鐘左右的間隔吧!這是個(gè)突破點(diǎn)。
源碼
其實(shí)思路很簡單,就是想方設(shè)法的針對問題解決問題。不管對方的系統(tǒng)多么的堅(jiān)固,也不可能是天衣無縫,總會(huì)有一種解決的辦法的。下面是代碼。
# coding:utf-8# __author__ = 'Mark sinoberg'# __date__ = '2016/5/26'# __Desc__ = 測試測試 刷新自己的博客的瀏覽量import urllib2,refrom bs4 import BeautifulSoupdef getHtml(url,headers): req = urllib2.Request(url,headers=headers) page = urllib2.urlopen(req) html = page.read() return htmldef parse(data): content = BeautifulSoup(data,'lxml') return contentdef getReadNums(data,st): reg = re.compile(st) return re.findall(reg,data)url = 'http://VeVB.COm/marksinoberg/article/details/51493318'headers = { 'referer':'http://VeVB.COm/', '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 = 0while 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代碼運(yùn)行結(jié)果:
D:/Software/Python2/python.exe E:/Code/Python/MyTestSet/ulib2/AddWatcher.py94人閱讀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抓取了特定位置的數(shù)據(jù),這里是對瀏覽量的抓取。從上面的結(jié)果也可以看出,一個(gè)IP抓取的數(shù)據(jù)量是有限制的,一般來說是10~30個(gè),這里貌似是22次訪問。
展望
其實(shí)我是可以做到一次運(yùn)行多次刷新的效果的,但是這樣做不是特別的正派,所以我就說一下自己的思路吧。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選