国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 如何使用python爬取csdn博客訪問量

如何使用python爬取csdn博客訪問量

2020-08-12 09:31xingjiarong Python

這篇文章主要介紹了如何使用python爬取csdn博客訪問量的相關資料,需要的朋友可以參考下

最近學習了python和爬蟲,想寫一個程序練練手,所以我就想到了大家都比較關心的自己的博客訪問量,使用python來獲取自己博客的訪問量,這也是后邊我將要進行的項目的一部分,后邊我會對博客的訪問量進行分析,以折線圖和餅圖等可視化的方式展示自己博客被訪問的情況,使自己能更加清楚自己的哪些博客更受關注,博客專家請勿噴,因為我不是專家,我聽他們說專家本身就有這個功能。

一、網址分析

如何使用python爬取csdn博客訪問量

進入自己的博客頁面,網址為:http://blog.csdn.net/xingjiarong 網址還是非常清晰的就是csdn的網址+個人csdn登錄賬號,我們來看一下下一頁的網址。

如何使用python爬取csdn博客訪問量

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

二、如何獲取標題

右鍵查看網頁的源代碼,我們看到可以找到這樣一段代碼:

如何使用python爬取csdn博客訪問量

我們可以看到標題都是在標簽

?
1
<span class="link_title"><a href="/xingjiarong/article/details/50651235">

所以我們可以使用下面的正則表達式來匹配標題:

?
1
<span class="link_title"><a href=".*?">(.*?)</a></span>

三、如何獲取訪問量

拿到了標題之后,就要獲得對應的訪問量了,經過對源碼的分析,我看到訪問量的結構都是這樣的:

?
1
<span class="link_view" title="閱讀次數"> <a href="/xingjiarong/article/details/50651235" title="閱讀次數">閱讀</a>(1140)</span>

括號中的數字即為訪問量,我們可以用下面的正則表達式來匹配:

?
1
<span class="link_view".*?><a href=".*?" title="閱讀次數">閱讀</a>((.*?))</span>

四、如何判斷是否為尾頁

接下來我們要判斷當前頁是否為最后一頁,否則我們就不能判斷什么時候結束了,我找到了源碼中‘尾頁'的標簽,發現是下面的結構:

?
1
<a href="/xingjiarong/article/list/2">下一頁</a> <a href="/xingjiarong/article/list/7">尾頁</a>

所以我們可以用下面的正則表達式來匹配,如果匹配成功就說明當前頁不是最后一頁,否則當前頁就是最后一頁。

?
1
<a href=".*?">尾頁</a>

五、編程實現

下面是完整的代碼實現:

  1. #!usr/bin/python 
  2. # -*- coding: utf-8 -*- 
  3. ''
  4. Created on 2016年2月13日 
  5. @author: xingjiarong 
  6. 使用python爬取csdn個人博客的訪問量,主要用來練手 
  7. ''
  8. import urllib2 
  9. import re 
  10. #當前的博客列表頁號 
  11. page_num = 1 
  12. #不是最后列表的一頁 
  13. notLast = 1 
  14. account = str(raw_input('輸入csdn的登錄賬號:')) 
  15. while notLast: 
  16. #首頁地址 
  17. baseUrl = 'http://blog.csdn.net/'+account 
  18. #連接頁號,組成爬取的頁面網址 
  19. myUrl = baseUrl+'/article/list/'+str(page_num) 
  20. #偽裝成瀏覽器訪問,直接訪問的話csdn會拒絕 
  21. user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' 
  22. headers = {'User-Agent':user_agent} 
  23. #構造請求 
  24. req = urllib2.Request(myUrl,headers=headers) 
  25. #訪問頁面 
  26. myResponse = urllib2.urlopen(req) 
  27. myPage = myResponse.read() 
  28. #在頁面中查找是否存在‘尾頁'這一個標簽來判斷是否為最后一頁 
  29. notLast = re.findall('<a href=".*?">尾頁</a>',myPage,re.S) 
  30. print '-----------------------------第%d頁---------------------------------' % (page_num,) 
  31. #利用正則表達式來獲取博客的標題 
  32. title = re.findall('<span class="link_title"><a href=".*?">(.*?)</a></span>',myPage,re.S) 
  33. titleList=[] 
  34. for items in title: 
  35. titleList.append(str(items).lstrip().rstrip()) 
  36. #利用正則表達式獲取博客的訪問量 
  37. view = re.findall('<span class="link_view".*?><a href=".*?" title="閱讀次數">閱讀</a>((.*?))</span>',myPage,re.S) 
  38. viewList=[] 
  39. for items in view: 
  40. viewList.append(str(items).lstrip().rstrip()) 
  41. #將結果輸出 
  42. for n in range(len(titleList)): 
  43. print '訪問量:%s 標題:%s' % (viewList[n].zfill(4),titleList[n]) 
  44. #頁號加1 
  45. page_num = page_num + 1 

下面是部分結果:

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

總結:

使用python編寫爬蟲,我個人總結了以下的步驟:

1、分析要抓取的網址特征,以確定如何生成相關網頁的網址,如果只爬取一個網頁,則這一步可以省略。

2、查看網頁的源碼,分析自己想要爬取的內容所在的標簽的特征。

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

4、編程實現。

以上內容是針對如何使用python爬取csdn博客訪問量的相關知識,希望對大家有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色福利视频 | 日日天天| 91电影在线 | 黄色在线网站 | 精品久久久久久久久久久久久久 | 精品久久久久久久久久久 | 亚洲wu码 | 99久久精品一区二区成人 | 国产在线精品一区 | 久久国产成人 | 日韩专区中文字幕 | 动漫卡通精品一区二区三区介绍 | av中文字幕观看 | 开心久久婷婷综合中文字幕 | 99视频在线免费观看 | 欧美在线观看一区 | 久久久久这里只有精品 | 91精品国产日韩91久久久久久 | 天天久久综合网 | 一级电影网 | 四虎在线观看 | 精品黄色国产 | 欧美成人精品在线 | 精品国产乱码久久久久久影片 | 91超碰在线观看 | 午夜天堂精品久久久久 | 天天操天天干天天爽 | 91精品观看 | 亚洲国产精品网站 | 成人av高清| 国产精品亚洲第一区在线暖暖韩国 | 免费一级毛片网站 | 一区二区三区欧美在线 | 国产99久久 | 欧美日韩中文字幕 | 中文二区| 欧美日韩国产一区二区三区在线观看 | 亚洲国产精品久久人人爱 | 国产精品美女久久久久aⅴ国产馆 | av在线电影网| 久久久精品456亚洲影院 |