python爬蟲刷博客訪問量教程一:直接請求

前言

爬蟲還有一個很好玩的地方就是可以刷訪問量/瀏覽量。對于不同的網(wǎng)站有不同的統(tǒng)計(jì)訪問量的方法脆淹。有的會限制同一個IP的統(tǒng)計(jì)栖疑,有的是條件觸發(fā)的統(tǒng)計(jì)(如視頻播放網(wǎng)站惭笑,點(diǎn)擊播放算一次)预麸。這個系列教程會結(jié)合web技術(shù)嘗試解決這些問題瞪浸,實(shí)現(xiàn)穩(wěn)定刷訪問量。

分析原理

一些小型網(wǎng)站會把統(tǒng)計(jì)代碼寫進(jìn)php里面吏祸,每次訪問都會執(zhí)行一遍增加訪問量对蒲。那就可以直接用爬蟲抓取相關(guān)的頁面,讓它執(zhí)行一遍統(tǒng)計(jì)代碼贡翘。

測試環(huán)境

爬蟲環(huán)境

Windows 10

python 3.6.2

服務(wù)器測試環(huán)境

自己動手寫了個模擬的網(wǎng)站環(huán)境蹈矮,每次訪問該頁面,瀏覽次數(shù)就會+1 .

<?php

/**

* Created by PhpStorm.

* User: http://pingxonline.com

* Date: 2018/2/19 0019

* Time: 18:44

*/

include_once 'connect.php';

$db = new connectDataBase();

// 初始化

$visit = 0;

$time = null;

// 獲取當(dāng)前的時間

$mtime = date("Y-m-d h:i:s");

// 對ID為1 的文章進(jìn)行訪問量+1

$sql = "UPDATE `original` SET `visit`=`visit`+1, `mtime` = '{$mtime}' WHERE `article_id` = 1";

if (mysqli_query($db->link, $sql)){

? ? // 獲取ID為1 的文章最新數(shù)據(jù)鸣驱,輸出到前端

? ? $sql = 'SELECT * FROM `original` WHERE `article_id` = 1';

? ? $result = mysqli_query($db->link, $sql);

? ? while($row = mysqli_fetch_assoc($result)){

? ? ? ? $visit = $row['visit'];

? ? ? ? $time = $row['mtime'];

? ? }

}else{

? ? echo mysqli_error($db->link);

? ? die('執(zhí)行失敗');

}

?>

<!doctype html>

<html lang="zh-CN">

<head>

? ? <meta charset="UTF-8">

? ? <meta name="viewport"

? ? ? ? ? content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

? ? <meta http-equiv="X-UA-Compatible" content="ie=edge">

? ? <title>訪問量測試</title>

</head>

<body style="text-align: center">

? ? <p>

? ? ? ? 訪問量:<?php echo $visit ?>次

? ? </p>

? ? <p>

? ? ? ? 最后訪問時間:<?php echo $time ?>

? ? </p>

</body>

</html>


python 代碼

首先需要安裝python的一個Requests擴(kuò)展插件泛鸟。

Requests 是用 Python 語言編寫,基于 urllib踊东,采用 Apache2 Licensed 開源協(xié)議的 HTTP 庫北滥。它比 urllib 更加方便,可以節(jié)約我們大量的工作闸翅,完全滿足 HTTP 測試需求再芋。

通過 pip 安裝

pip install requests

或者,下載代碼后安裝:

$ git clone git://github.com/kennethreitz/requests.git

$ cd requests

$ python setup.py install

源代碼

import requests

import time

#? 目標(biāo)url地址

url = 'http://localhost/TrafficGenerator/original.php'

while 1:

? ? response = requests.get(url)

? ? response.close()

? ? print(response.text)

? ? # 間隔1秒

? ? time.sleep(1)


這就是比較簡單的方法坚冀。但是實(shí)際的應(yīng)用可能并不會這么簡單济赎。很多網(wǎng)站往往會過濾想通IP的訪問,這個時候就需要IP代理记某。


使用代理

requests對代理的設(shè)置方法非常的簡單司训。深入學(xué)習(xí)可以參考這里:https://www.cnblogs.com/zhaof/p/6915127.html

注意:本篇文章是在本地測試,本地測試使用的是本地地址液南,使用代理是無效的壳猜。

import requests

import time

import random

# 隨機(jī)獲取瀏覽器標(biāo)識

def get_UA():

? ? UA_list = [

? ? ? ? "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",

? ? ? ? "Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",

? ? ? ? "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",

? ? ? ? "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0",

? ? ? ? "Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0",

? ? ? ? "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36"

? ? ]

? ? randnum = random.randint(0, len(UA_list)-1)

? ? h_list = {

? ? ? ? 'user-agent': UA_list[randnum]

? ? }

? ? return h_list

# 獲取代理IP

def get_ip():

? ? # 這里填寫大象代理api地址,num參數(shù)必須為1贺拣,每次只請求一個IP地址

? ? url = 'http://tvp.daxiangdaili.com/ip/?tid=你的訂單號&num=1&delay=5&category=2'

? ? response = requests.get(url)

? ? response.close()

? ? proxy = {

? ? ? ? "http":"http://"+response.text

? ? }

? ? print(proxy['http'])

? ? return proxy

if __name__ == '__main__':

? ? #? 目標(biāo)url地址

? ? url = 'http://localhost/TrafficGenerator/original.php'

? ? while 1:

? ? ? ? try:

? ? ? ? ? ? # 開啟一個會話

? ? ? ? ? ? s = requests.session()

? ? ? ? ? ? # 調(diào)用函數(shù)獲取瀏覽器標(biāo)識

? ? ? ? ? ? headers = get_UA()

? ? ? ? ? ? # 調(diào)用函數(shù)獲取IP代理地址

? ? ? ? ? ? proxy = get_ip()

? ? ? ? ? ? # 開始請求, 注意本地測試使用的是本地地址蓖谢,使用代理是無效的

? ? ? ? ? ? web_data = s.get(url, headers=headers, proxies=proxy)

? ? ? ? ? ? # 輸出網(wǎng)頁內(nèi)容

? ? ? ? ? ? print(web_data.content)

? ? ? ? ? ? # 間隔1秒

? ? ? ? ? ? time.sleep(1)

? ? ? ? finally:

? ? ? ? ? ? print('error')



系列教程:

python爬蟲刷博客訪問量教程三:使用Selenium讓Chrome瀏覽器自動化

python爬蟲刷博客訪問量教程二:欺騙第三方統(tǒng)計(jì)服務(wù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市譬涡,隨后出現(xiàn)的幾起案子闪幽,更是在濱河造成了極大的恐慌,老刑警劉巖涡匀,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盯腌,死亡現(xiàn)場離奇詭異,居然都是意外死亡陨瘩,警方通過查閱死者的電腦和手機(jī)腕够,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門级乍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帚湘,你說我怎么就攤上這事玫荣。” “怎么了大诸?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵捅厂,是天一觀的道長。 經(jīng)常有香客問我资柔,道長焙贷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任贿堰,我火速辦了婚禮辙芍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羹与。我一直安慰自己故硅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布注簿。 她就那樣靜靜地躺著契吉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诡渴。 梳的紋絲不亂的頭發(fā)上捐晶,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音妄辩,去河邊找鬼惑灵。 笑死,一個胖子當(dāng)著我的面吹牛眼耀,可吹牛的內(nèi)容都是我干的英支。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哮伟,長吁一口氣:“原來是場噩夢啊……” “哼干花!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起楞黄,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤池凄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鬼廓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肿仑,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尤慰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馏锡。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖伟端,靈堂內(nèi)的尸體忽然破棺而出杯道,到底是詐尸還是另有隱情,我是刑警寧澤荔泳,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布蕉饼,位于F島的核電站,受9級特大地震影響玛歌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擎椰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一支子、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧达舒,春花似錦值朋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贯底,卻和暖如春丰辣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背禽捆。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工笙什, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胚想。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓琐凭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浊服。 傳聞我的和親對象是個殘疾皇子统屈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容