最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

如何使用python爬取csdn博客訪問(wèn)量

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:17:42
文檔

如何使用python爬取csdn博客訪問(wèn)量

如何使用python爬取csdn博客訪問(wèn)量:最近學(xué)習(xí)了python和爬蟲(chóng),想寫(xiě)一個(gè)程序練練手,所以我就想到了大家都比較關(guān)心的自己的博客訪問(wèn)量,使用python來(lái)獲取自己博客的訪問(wèn)量,這也是后邊我將要進(jìn)行的項(xiàng)目的一部分,后邊我會(huì)對(duì)博客的訪問(wèn)量進(jìn)行分析,以折線圖和餅圖等可視化的方式展示自己博客被訪問(wèn)
推薦度:
導(dǎo)讀如何使用python爬取csdn博客訪問(wèn)量:最近學(xué)習(xí)了python和爬蟲(chóng),想寫(xiě)一個(gè)程序練練手,所以我就想到了大家都比較關(guān)心的自己的博客訪問(wèn)量,使用python來(lái)獲取自己博客的訪問(wèn)量,這也是后邊我將要進(jìn)行的項(xiàng)目的一部分,后邊我會(huì)對(duì)博客的訪問(wèn)量進(jìn)行分析,以折線圖和餅圖等可視化的方式展示自己博客被訪問(wèn)
最近學(xué)習(xí)了python和爬蟲(chóng),想寫(xiě)一個(gè)程序練練手,所以我就想到了大家都比較關(guān)心的自己的博客訪問(wèn)量,使用python來(lái)獲取自己博客的訪問(wèn)量,這也是后邊我將要進(jìn)行的項(xiàng)目的一部分,后邊我會(huì)對(duì)博客的訪問(wèn)量進(jìn)行分析,以折線圖和餅圖等可視化的方式展示自己博客被訪問(wèn)的情況,使自己能更加清楚自己的哪些博客更受關(guān)注,博客專家請(qǐng)勿噴,因?yàn)槲也皇菍<?,我?tīng)他們說(shuō)專家本身就有這個(gè)功能。

一、網(wǎng)址分析

這里寫(xiě)圖片描述

進(jìn)入自己的博客頁(yè)面,網(wǎng)址為:http://blog.csdn.net/xingjiarong 網(wǎng)址還是非常清晰的就是csdn的網(wǎng)址+個(gè)人csdn登錄賬號(hào),我們來(lái)看一下下一頁(yè)的網(wǎng)址。

這里寫(xiě)圖片描述

看到第二頁(yè)的地址為:http://blog.csdn.net/xingjiarong/article/list/2
后邊的數(shù)字表示現(xiàn)在正處于第幾頁(yè),再用其他的頁(yè)面驗(yàn)證一下,確實(shí)是這樣的,那么第一頁(yè)為什么不是http://blog.csdn.net/xingjiarong/article/list/1呢,那么我們?cè)跒g覽器中輸入http://blog.csdn.net/xingjiarong/article/list/1試試,哎,果然是第一頁(yè)啊,其實(shí)第一頁(yè)是被重定向了,http://blog.csdn.net/xingjiarong被重定向到http://blog.csdn.net/xingjiarong/article/list/1,所以兩個(gè)網(wǎng)址都能訪問(wèn)第一頁(yè),那么現(xiàn)在規(guī)律就非常明顯了:
http://blog.csdn.net/xingjiarong/article/list/ + 頁(yè)號(hào)

二、如何獲取標(biāo)題

右鍵查看網(wǎng)頁(yè)的源代碼,我們看到可以找到這樣一段代碼:

這里寫(xiě)圖片描述

我們可以看到標(biāo)題都是在標(biāo)簽

所以我們可以使用下面的正則表達(dá)式來(lái)匹配標(biāo)題:

(.*?)

三、如何獲取訪問(wèn)量

拿到了標(biāo)題之后,就要獲得對(duì)應(yīng)的訪問(wèn)量了,經(jīng)過(guò)對(duì)源碼的分析,我看到訪問(wèn)量的結(jié)構(gòu)都是這樣的:

 閱讀(1140)

括號(hào)中的數(shù)字即為訪問(wèn)量,我們可以用下面的正則表達(dá)式來(lái)匹配:

閱讀((.*?))

四、如何判斷是否為尾頁(yè)

接下來(lái)我們要判斷當(dāng)前頁(yè)是否為最后一頁(yè),否則我們就不能判斷什么時(shí)候結(jié)束了,我找到了源碼中‘尾頁(yè)'的標(biāo)簽,發(fā)現(xiàn)是下面的結(jié)構(gòu):

下一頁(yè) 尾頁(yè)

所以我們可以用下面的正則表達(dá)式來(lái)匹配,如果匹配成功就說(shuō)明當(dāng)前頁(yè)不是最后一頁(yè),否則當(dāng)前頁(yè)就是最后一頁(yè)。

尾頁(yè)

五、編程實(shí)現(xiàn)

下面是完整的代碼實(shí)現(xiàn):

#!usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 2016年2月13日
@author: xingjiarong
使用python爬取csdn個(gè)人博客的訪問(wèn)量,主要用來(lái)練手
'''
import urllib2
import re
#當(dāng)前的博客列表頁(yè)號(hào)
page_num = 1
#不是最后列表的一頁(yè)
notLast = 1
account = str(raw_input('輸入csdn的登錄賬號(hào):'))
while notLast:
#首頁(yè)地址
baseUrl = 'http://blog.csdn.net/'+account
#連接頁(yè)號(hào),組成爬取的頁(yè)面網(wǎng)址
myUrl = baseUrl+'/article/list/'+str(page_num)
#偽裝成瀏覽器訪問(wèn),直接訪問(wèn)的話csdn會(huì)拒絕
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent':user_agent}
#構(gòu)造請(qǐng)求
req = urllib2.Request(myUrl,headers=headers)
#訪問(wèn)頁(yè)面
myResponse = urllib2.urlopen(req)
myPage = myResponse.read()
#在頁(yè)面中查找是否存在‘尾頁(yè)'這一個(gè)標(biāo)簽來(lái)判斷是否為最后一頁(yè)
notLast = re.findall('尾頁(yè)',myPage,re.S)
print '-----------------------------第%d頁(yè)---------------------------------' % (page_num,)
#利用正則表達(dá)式來(lái)獲取博客的標(biāo)題
title = re.findall('(.*?)',myPage,re.S)
titleList=[]
for items in title:
titleList.append(str(items).lstrip().rstrip()) 
#利用正則表達(dá)式獲取博客的訪問(wèn)量
view = re.findall('閱讀((.*?))',myPage,re.S)
viewList=[]
for items in view:
viewList.append(str(items).lstrip().rstrip())
#將結(jié)果
輸出 for n in range(len(titleList)): print '訪問(wèn)量:%s 標(biāo)題:%s' % (viewList[n].zfill(4),titleList[n]) #頁(yè)號(hào)加1 page_num = page_num + 1

下面是部分結(jié)果:

輸入csdn的登錄賬號(hào):xingjiarong
-----------------------------第1頁(yè)---------------------------------
訪問(wèn)量:1821 標(biāo)題:python編程常用模板總結(jié)
訪問(wèn)量:1470 標(biāo)題:設(shè)計(jì)模式之UML(一)類圖以及類間關(guān)系(泛化 、實(shí)現(xiàn)、依賴、關(guān)聯(lián)、聚合、組合)
訪問(wèn)量:0714 標(biāo)題:ubuntu14.04 安裝并破解MyEclipse2014
訪問(wèn)量:1040 標(biāo)題:ubuntu14.04 配置tomcat8
訪問(wèn)量:1355 標(biāo)題:java調(diào)用python方法總結(jié)
訪問(wèn)量:0053 標(biāo)題:Java多線程之Callable和Future
訪問(wèn)量:1265 標(biāo)題:跟我學(xué)匯編(三)寄存器和物理地址的形成
訪問(wèn)量:1083 標(biāo)題:跟我學(xué)匯編(二)王爽匯編環(huán)境搭建
訪問(wèn)量:0894 標(biāo)題:跟我學(xué)匯編(一)基礎(chǔ)知識(shí)
訪問(wèn)量:2334 標(biāo)題:java多線程(一)Race Condition現(xiàn)象及產(chǎn)生的原因
訪問(wèn)量:0700 標(biāo)題:Matlab矩陣基礎(chǔ)
訪問(wèn)量:0653 標(biāo)題:Matlab變量、分支語(yǔ)句和循環(huán)語(yǔ)句
訪問(wèn)量:0440 標(biāo)題:Matlab字符串處理
訪問(wèn)量:0514 標(biāo)題:Matlab運(yùn)算符與運(yùn)算
訪問(wèn)量:0533 標(biāo)題:Matlab的數(shù)據(jù)類型
-----------------------------第2頁(yè)---------------------------------
訪問(wèn)量:0518 標(biāo)題:OpenStack設(shè)計(jì)與實(shí)現(xiàn)(五)RESTful API和WSGI
訪問(wèn)量:0540 標(biāo)題:解決Android SDK Manager下載太慢問(wèn)題
訪問(wèn)量:0672 標(biāo)題:OpenStack設(shè)計(jì)與實(shí)現(xiàn)(四)消息總線(AMQP)
訪問(wèn)量:0570 標(biāo)題:分布式文件存儲(chǔ)FastDFS(五)FastDFS常用命令總結(jié)
訪問(wèn)量:0672 標(biāo)題:分布式文件存儲(chǔ)FastDFS(四)配置fastdfs-apache-module
訪問(wèn)量:0979 標(biāo)題:分布式文件存儲(chǔ)FastDFS(一)初識(shí)FastDFS
訪問(wèn)量:0738 標(biāo)題:分布式文件存儲(chǔ)FastDFS(三)FastDFS配置
訪問(wèn)量:0682 標(biāo)題:分布式文件存儲(chǔ)FastDFS(二)FastDFS安裝
訪問(wèn)量:0511 標(biāo)題:OpenStack設(shè)計(jì)與實(shí)現(xiàn)(三)KVM和QEMU淺析
訪問(wèn)量:0593 標(biāo)題:OpenStack設(shè)計(jì)與實(shí)現(xiàn)(二)Libvirt簡(jiǎn)介與實(shí)現(xiàn)原理
訪問(wèn)量:0562 標(biāo)題:OpenStack設(shè)計(jì)與實(shí)現(xiàn)(一)虛擬化
訪問(wèn)量:0685 標(biāo)題:食堂買飯的啟示
訪問(wèn)量:0230 標(biāo)題:UML之時(shí)序圖詳解
訪問(wèn)量:0890 標(biāo)題:設(shè)計(jì)模式之橋梁模式和策略模式的區(qū)別
訪問(wèn)量:1258 標(biāo)題:設(shè)計(jì)模式(十二)責(zé)任鏈模式

總結(jié):

使用python編寫(xiě)爬蟲(chóng),我個(gè)人總結(jié)了以下的步驟:

1、分析要抓取的網(wǎng)址特征,以確定如何生成相關(guān)網(wǎng)頁(yè)的網(wǎng)址,如果只爬取一個(gè)網(wǎng)頁(yè),則這一步可以省略。

2、查看網(wǎng)頁(yè)的源碼,分析自己想要爬取的內(nèi)容所在的標(biāo)簽的特征。

3、使用正則表達(dá)式從源碼中將自己想要的部分摳出來(lái)。

4、編程實(shí)現(xiàn)。

以上內(nèi)容是針對(duì)如何使用python爬取csdn博客訪問(wèn)量的相關(guān)知識(shí),希望對(duì)大家有所幫助。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

如何使用python爬取csdn博客訪問(wèn)量

如何使用python爬取csdn博客訪問(wèn)量:最近學(xué)習(xí)了python和爬蟲(chóng),想寫(xiě)一個(gè)程序練練手,所以我就想到了大家都比較關(guān)心的自己的博客訪問(wèn)量,使用python來(lái)獲取自己博客的訪問(wèn)量,這也是后邊我將要進(jìn)行的項(xiàng)目的一部分,后邊我會(huì)對(duì)博客的訪問(wèn)量進(jìn)行分析,以折線圖和餅圖等可視化的方式展示自己博客被訪問(wèn)
推薦度:
標(biāo)簽: 博客 blog 訪問(wèn)量
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top