1. 程式人生 > >Python 自動刷部落格瀏覽量(轉載,請尊重原創)

Python 自動刷部落格瀏覽量(轉載,請尊重原創)

哈哈,今天的話題有點那什麼了哈。咱們應該秉承學習技術的角度來看,那麼就開始今天的話題吧。

思路來源

今天很偶然的一個機會,聽到別人在談論現在的“刷量”行為,於是就激發了我的好奇心。然後看了下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'
} defgetHtml(url,headers): req = urllib2.Request(url,headers=headers) page = urllib2.urlopen(req) html = page.read() return html
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

我們手動的新增一下目標url以及一個headers就可以了。我自然的會用自己的做下測試咯。
程式碼試著運行了一下,確實是可以增加瀏覽量滴。

慢增長

既然這樣的方案是可行的,那就說明思路是正確的了。於是我們自然會想到寫一個迴圈吧。這樣不就能實現大量的瀏覽的增加了嗎?
是的,我確實是這樣乾的。程式碼如下:

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

剛開始的時候,可以明顯的看到部落格數量的增加,(^__^) 嘻嘻……初見成效咯。但是好景不長,我發現瀏覽量增加了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 字尾 . . . . . . . :
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134

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

// 更改路由表的配置
ipconfig / release // 釋放網路,
ipconfig /renew    //  重新分配IP
  • 1
  • 2
  • 3

這樣基本上對於改變自己的IP是有點效果的。尤其是對區域網使用者而言。

所以,我只需要在Python程式碼中呼叫系統的cmd命令,就可以動態的改變自己的IP了。也就達成了我的需求了

難題

雖然IP的問題解決了,但是這樣刷的話,還是太慢。因為路由表的更新時需要時間的。而這和程式碼執行的速度比起來,真的是太慢太慢了。而且每次只能刷出十個瀏覽量,額。確實是比較的尷尬啊。費了這麼大的勁,才刷了十個瀏覽量。怎麼解決這個問題呢?

我其實也沒有真正的解決這個問題,但是我發現這個限制也是不特別的強,因為我中途吃了個飯,回來的時候就發現原來的IP又可以刷了。大概45分鐘左右的間隔吧!這是個突破點。

原始碼

其實思路很簡單,就是想方設法的針對問題解決問題。不管對方的系統多麼的堅固,也不可能是天衣無縫,總