1. 程式人生 > >使用python爬取csdn部落格訪問量

使用python爬取csdn部落格訪問量

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

一、網址分析

這裡寫圖片描述

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

這裡寫圖片描述

二、如何獲取標題

右鍵檢視網頁的原始碼,我們看到可以找到這樣一段程式碼:
這裡寫圖片描述
我們可以看到標題都是在標籤

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

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

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

三、如何獲取訪問量

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

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

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

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

四、如何判斷是否為尾頁

接下來我們要判斷當前頁是否為最後一頁,否則我們就不能判斷什麼時候結束了,我找到了原始碼中‘尾頁’的標籤,發現是下面的結構:

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

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

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

五、程式設計實現

下面是完整的程式碼實現:

#!usr/bin/python
# -*- coding: utf-8 -*-

'''
Created on 2016年2月13日

@author: xingjiarong

使用python爬取csdn個人部落格的訪問量,主要用來練手
'''

import urllib2
import re


#當前的部落格列表頁號
page_num = 1
#不是最後列表的一頁
notLast = 1


account = str(raw_input('輸入csdn的登入賬號:'))

while notLast:

    #首頁地址
    baseUrl = 'http://blog.csdn.net/'+account
    #連線頁號,組成爬取的頁面網址
    myUrl = baseUrl+'/article/list/'+str(page_num)

    #偽裝成瀏覽器訪問,直接訪問的話csdn會拒絕
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = {'User-Agent':user_agent}
    #構造請求
    req = urllib2.Request(myUrl,headers=headers)

    #訪問頁面
    myResponse = urllib2.urlopen(req)
    myPage = myResponse.read()

    #在頁面中查詢是否存在‘尾頁’這一個標籤來判斷是否為最後一頁
    notLast = re.findall('<a href=".*?">尾頁</a>',myPage,re.S)

    print '-----------------------------第%d頁---------------------------------' % (page_num,)

    #利用正則表示式來獲取部落格的標題
    title = re.findall('<span class="link_title"><a href=".*?">(.*?)</a></span>',myPage,re.S)

    titleList=[]
    for items in title:
        titleList.append(str(items).lstrip().rstrip())     


    #利用正則表示式獲取部落格的訪問量
    view = re.findall('<span class="link_view".*?><a href=".*?" title="閱讀次數">閱讀</a>\((.*?)\)</span>',myPage,re.S)

    viewList=[]
    for items in view:
        viewList.append(str(items).lstrip().rstrip())

    #將結果輸出   
    for n in range(len(titleList)):
        print '訪問量:%s 標題:%s' % (viewList[n].zfill(4),titleList[n])

    #頁號加1
    page_num = page_num + 1

下面是部分結果:

輸入csdn的登入賬號:xingjiarong
-----------------------------第1頁---------------------------------
訪問量:1821 標題:python程式設計常用模板總結
訪問量:1470 標題:設計模式之UML(一)類圖以及類間關係(泛化 、實現、依賴、關聯、聚合、組合)
訪問量:0714 標題:ubuntu14.04  安裝並破解MyEclipse2014
訪問量:1040 標題:ubuntu14.04 配置tomcat8
訪問量:1355 標題:java呼叫python方法總結
訪問量:0053 標題:Java多執行緒之CallableFuture
訪問量:1265 標題:跟我學彙編(三)暫存器和實體地址的形成
訪問量:1083 標題:跟我學彙編(二)王爽彙編環境搭建
訪問量:0894 標題:跟我學彙編(一)基礎知識
訪問量:2334 標題:java多執行緒(一)Race Condition現象及產生的原因
訪問量:0700 標題:Matlab矩陣基礎
訪問量:0653 標題:Matlab變數、分支語句和迴圈語句
訪問量:0440 標題:Matlab字串處理
訪問量:0514 標題:Matlab運算子與運算
訪問量:0533 標題:Matlab的資料型別
-----------------------------第2頁---------------------------------
訪問量:0518 標題:OpenStack設計與實現(五)RESTful APIWSGI
訪問量: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設計與實現(三)KVMQEMU淺析
訪問量:0593 標題:OpenStack設計與實現(二)Libvirt簡介與實現原理
訪問量:0562 標題:OpenStack設計與實現(一)虛擬化
訪問量:0685 標題:食堂買飯的啟示
訪問量:0230 標題:UML之時序圖詳解
訪問量:0890 標題:設計模式之橋樑模式和策略模式的區別
訪問量:1258 標題:設計模式(十二)責任鏈模式

總結:

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

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

2、檢視網頁的原始碼,分析自己想要爬取的內容所在的標籤的特徵。

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

4、程式設計實現。

相關推薦

使用pythoncsdn部落訪問量

最近學習了python和爬蟲,想寫一個程式練練手,所以我就想到了大家都比較關心的自己的部落格訪問量,使用python來獲取自己部落格的訪問量,這也是後邊我將要進行的專案的一部分,後邊我會對部落格的訪問量進行分析,以折線圖和餅圖等視覺化的方式展示自己部落格被訪問的

Python進階(十八)-Python3爬蟲小試牛刀之CSDN部落個人資訊

分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow 也歡迎轉載我的文章,轉載請註明出處 https://blog.csdn.net/mm2zzyzzp Python進階(十八)-Python3爬蟲實踐

python爬蟲csdn部落專家所有部落內容

#coding:utf-8 import urllib2 from bs4 import BeautifulSoup import os import re #import sys #reload(sys) #sys.setdefaultencoding("utf-8") def getPage(hre

部落搬家系列(二)-CSDN部落

部落格搬家系列(二)-爬取CSDN部落格 一.前情回顧  部落格搬家系列(一)-簡介:https://blog.csdn.net/rico_zhou/article/details/83619152  部落格搬家系列(三)-爬取部落格園部落格:https://bl

JsoupCSDN部落

個人Jsoup練習之作,只做參考: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <versi

python爬蟲設計刷部落訪問量(刷訪問量,贊,圖片)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

pythoncsdn部落內容

首先說明爬蟲的大體結構可以通用,不過針對字串的匹配是不能通用的,比如你用爬取csdn的程式碼想去爬取部落格園就是不行的了,因為爬取的字元是根據對應的html內容設定的。 使用python構建爬蟲程式有一個簡單的套路,我總結為3步走: 1.re.compile設定查詢的字串樣

爬蟲系列(2)-----pythonCSDN博客首頁所有文章

成功 -name 保存 eas attr eve lan url att 對於Python初學者來說,爬蟲技能是應該是最好入門,也是最能夠有讓自己有成就感的,今天在整理代碼時,整理了一下之前自己學習爬蟲的一些代碼,今天上第2個簡單的例子,python爬取CSDN博客首頁所有

JAVA爬蟲挖CSDN部落文章(續)

前言 之前寫過一篇用jsoup爬取csdn部落格的文章JAVA爬蟲挖取CSDN部落格文章 ,當時博主還在上一家公司實習,由於公司辦公網路需要代理才能訪問外網,那一篇的程式碼邏輯與代理密切相關,可能有些不熟悉jsoup怎麼使用的朋友看了會感覺越看越糊塗,且當時以為爬取所有文章需要用到分

所有部落

爬取所有部落格的內容並轉換成為pdf格式 from bs4 import BeautifulSoup import pdfkit import re # <a href="https://blog.csdn.net/qq_41911569/article/details/830

Python爬蟲實戰--CSDN部落爬蟲(附贈瀏覽量小工具)

前言: 哈哈,繼續高興一下,通過自己的小手段,讓部落格訪問量過萬啦~怎麼做到的呢? 大家想一想我們近來所學的爬蟲知識,養兵千日用兵一時,在前面的學習,我們已經可以很輕鬆的爬去一些中小型和大型網站了,現在我們一起來思考一下,我們該怎麼去爬蟲CSDN網站,並順便提高一下我們部落格的瀏覽量呢? 問

(最新)使用爬蟲刷CSDN部落訪問量——親測有效

說明:該篇部落格是博主一字一碼編寫的,實屬不易,請尊重原創,謝謝大家! 1.概述 前言:前兩天剛寫了第一篇部落格https://blog.csdn.net/qq_41782425/article/details/84934224 發現閱讀量很少,博主很生氣,當時就想到使用爬蟲來

csdn部落的所有文章url

輸入部落格的主域名,就可以抓取這個部落格所有的文章編號。 # -*- coding:utf8 -*- import string import urllib2 import re import time import random class CSDN_Spider:

python 爬蟲去自己部落訪問量

廢話不多說,我也是剛剛學習小白一個,但是經過我的測試確實是可以用的,只不過大家要把時間設定的要長一點   先上程式碼,使用py3    程式碼的相關解析可以看我的其他部落格,裡面有詳細的介紹   __author__ = 'MrChen' &

多頁資訊——自己CSDN部落

在學完莫煩B站的爬蟲視訊的3.3節之後,我完成了這個專案,感覺收穫還是不小的。 體會是自己練手感覺進步挺快,能做出一個小專案給了我一些自信心,中間幾個棘手的問題: 1如何獲取下一頁:分析我的主頁的HTML,發現有一個總的文章數、有pagesize(每頁最多顯示幾篇文章),有此兩值就可以得到總

Python爬蟲實戰一:csdn學院所有課程名、價格和課時

import urllib.request import re,xlwt,datetime class csdn_spider(): def __init__(self): self.c = 0 def sava_data(self,name,class_num,price

為什麼我CSDN部落訪問量不變了?

我的BLOG訪問量就像您看到的,卡在那個數量上就不動了,這種現象持續了快一個月了!而且開啟空間一欄,你會發現部落格訪問量是0,評論數量也是0,真是無語了。CSDN的部落格一直是問題不斷,這次又是怎麼了?真希望官方的人出面解釋一下,到底是什麼原因,能不能修復好,如果不能的話真應該考慮換個部落格了,很多人都換了。

Python-selenium翻頁csdn博客保存數據入mysql

一個 數據 截圖 代碼 on() 博客 cat utf8 data csdn博客部分截圖 博客鏈接:https://blog.csdn.net/kevinelstri/article/list/1? 此次目的是要爬取文章標題,發表文章時間以及閱讀數量 1.瀏覽器

python網易雲音樂歌單音樂

string attrs default textarea bsp color read contents dom 在網易雲音樂中第一頁歌單的url:http://music.163.com/#/discover/playlist/ 依次第二頁:http://music.1

python qidian某一頁全部小說

decode return data- dib read etc break beautiful range 1 import re 2 import urllib.request 3 from bs4 import BeautifulSou