1. 程式人生 > >python簡單爬蟲:爬取並統計自己部落格頁面的資訊(一)

python簡單爬蟲:爬取並統計自己部落格頁面的資訊(一)

1. 什麼是爬蟲

  • 也叫網路爬蟲,簡單來說,爬蟲就是從一個根網站出發,根據某種規則獲得更多的相關網站的url,自動下載這些網頁並自動解析這些網頁的內容,從中獲取需要的資料。例如爬取某種圖片、某類文字資訊等。爬蟲還可以用於編纂搜尋引擎的網路索引。
  • 爬蟲所涉及的知識和技術面非常廣,在本文中不作討論;爬蟲有很多種實現方法,本文提供的python方法僅是其中一種簡單的實現,適用於規模較小的、自娛自樂的應用。有機會會持續更新。
  • 爬蟲會消耗目標系統的資源,作為一個遵紀守法、品德高尚的好市民,應該考慮目標系統是否願意被爬蟲訪問、負載等問題,以及所爬取的內容是否得當、爬取內容的用途等問題。
  • 這僅僅是本人目前對爬蟲的一個很淺層面的理解,望各位輕噴。

2. 目的

  • 解析資訊為:閱讀量(views)、粉絲數(fans)、喜歡數(likey)、評論數(comment)、積分(score)、排名(rank)、等級(level)、原創文章數(origin)
  • 結果存為output-timestamp.csv,另將結果匯入本地已手動建立的的mysql資料庫中
  • 每天定時爬取資訊並將解析結果通過郵件傳送給自己

3. 爬蟲的整體框架

spider-diagram

4. 工程目錄結構

- /config
    - config.ini
- /log
- /result
- /src
    - __init__.py
    - spider_main.py
- url_manerger.py - html_downloader.py - html_parser.py - outputer.py - log.py - mysql.py - main.py - cronTask.sh

5. 日誌模組(log.py)

  • 目的是為了規範輸出日誌,方便後期檢視處理日誌、除錯程式碼,應該養成良好的、規範的日誌習慣

  • 下面是日誌模組的程式碼:

# log.py
# conding=utf-8
import datetime
import logging
import logging.handlers

def
setup_custom_logger(name):
# logger settings time_format = "%Y-%m-%d-%H-%M-%S" time_now = datetime.datetime.now() log_file = "log/log_%s.log" %time_now.strftime(time_format) # 輸出的日誌的檔案路徑和檔名 log_file_max_size = 1024 * 1024 * 20 # megabytes log_num_backups = 3 log_format = "%(asctime)s [%(levelname)s]: %(filename)s(%(funcName)s:%(lineno)s) >> %(message)s" log_date_format = "%m/%d/%Y %I:%M:%S %p" log_filemode = "w" # w:overwrite a:append # setup logger # datefmt=log_date_format logging.basicConfig(filename=log_file, format=log_format, filemode=log_filemode, level=logging.DEBUG) rotate_file = logging.handlers.RotatingFileHandler( log_file, maxBytes=log_file_max_size, backupCount=log_num_backups ) logger = logging.getLogger(name) logger.addHandler(rotate_file) # print log messages to console consoleHandler = logging.StreamHandler() logFormatter = logging.Formatter(log_format) consoleHandler.setFormatter(logFormatter) logger.addHandler(consoleHandler) return logger
  • 使用日誌模組輸出日誌的示例:
# coding=utf-8
import logging
# 匯入自定義的日誌模組
import log
# 定義日誌名稱,目的是為了在整個工程檔案中能通過名稱找到對應的日誌物件
logger_name = 'spiderCsdn'
# 建立/獲取名稱為logger_name的日誌物件
logger = logging.getLogger(logger_name)

def main():
    # 輸出資訊
    logger.info('This is an information.')
    # 輸出錯誤資訊
    logger.error('This is an error information.')

if __name__ == '__main__':
    main()

輸出結果如下所示,以下內容會儲存在/log/log_2018-04-10-20-41-56.log

2018-04-10 20:41:56,733 [INFO]: test.py(main:12) >> This is an information.
2018-04-10 20:41:56,733 [ERROR]: test.py(main:14) >> This is an error information.

6. 全域性配置模組(config.ini)

  • 搭配python自帶的ConfigParser的package,可以按key值取出提前配置好的內容。
  • 主要是方便程式碼移植,比如資料庫的登入密碼更改後,直接在config.ini中更改即可,不需要去翻每一個用到資料庫配置的程式碼檔案,避免可能改漏的情況。
  • 以下是配置檔案的書寫示例:
# config.ini
# 注意從這裡取出的內容都是字串,即使不加引號
# []內是key值,不區分大小寫
# 每一個key值下可以有多個變數
[logger]
logger_name = spiderCsdn
  • 取配置內容示例:
# 匯入ConfigParser模組
import ConfigParser
# 建立一個config解析器物件
config = ConfigParser.ConfigParser()
# 讀取配置檔案
config.read('config/config.ini')
# 按key值和變數名獲取變數內容
# logger_name = 'spiderCsdn'
logger_name = config.get('logger', 'logger_name')
# 使用獲取到的內容
logger = log.setup_custom_logger(logger_name)

謝謝大家~

相關推薦

python簡單爬蟲統計自己部落頁面資訊

1. 什麼是爬蟲 也叫網路爬蟲,簡單來說,爬蟲就是從一個根網站出發,根據某種規則獲得更多的相關網站的url,自動下載這些網頁並自動解析這些網頁的內容,從中獲取需要的資料。例如爬取某種圖片、某類文字資訊等。爬蟲還可以用於編纂搜尋引擎的網路索引。 爬蟲所涉及的知

#python python簡單爬蟲示例——自己的所有部落將所有的部落匯出到一個網頁

#python    python簡單爬蟲示例——爬取自己的所有部落格,並將所有的部落格匯出到一個網頁 學習本文需要先準備的知識點:python基本語法 1.前期準備(知識點講解) (1)、urllib.request庫——開啟url的可擴充套件庫 urll

python——圖片爬蟲愛女神網站(www.znzhi.net)上的妹子圖 進階篇

我講解了圖片爬蟲的基本步驟,並實現了爬蟲程式碼 在本篇中,我將帶領大家對基礎篇中的程式碼進行改善,加入多執行緒,提高爬取效率。 首先我們明確一個改進的思路,就是在函式downloadAlbum(url)中: # 迴圈下載專輯中各個圖片 for num in

python58同城全部二手商品資訊轉轉網

python_58ershou python+beautifulsoup多執行緒爬取58同城二手全部商品資訊,並在jupyter上將資料視覺化 專案主程式在58_index中: 建立mango資料庫表 #連線MongoDB資料庫 client

Python 網頁中JavaScript動態新增的內容

當我們進行網頁爬蟲時,我們會利用一定的規則從返回的 HTML 資料中提取出有效的資訊。但是如果網頁中含有 JavaScript 程式碼,我們必須經過渲染處理才能獲得原始資料。此時,如果我們仍採用常規方法從中抓取資料,那麼我們將一無所獲。那麼,通過Web kit可以簡單解決這個

python爬蟲豆瓣讀書某個tag下的書籍存入excel

#-*- coding: UTF-8 -*- import sys import time import urllib import urllib2 import requests #import numpy as np from bs4 import BeautifulS

python爬蟲網站視頻

爬蟲 python python爬取百思不得姐網站視頻:http://www.budejie.com/video/新建一個py文件,代碼如下:#!/usr/bin/python # -*- coding: UTF-8 -*- import urllib,re,requests import sys

Python網絡爬蟲古詩文中的某個制定詩句來實現搜索

它的 參考文獻 lis 實現 word self 適合 odi 級別 python編譯練習,為了將自己學習過的知識用上,自己找了很多資料。所以想做一個簡單的爬蟲,代碼不會超過60行。主要用於爬取的古詩文網站沒有什麽限制而且網頁排布很規律,沒有什麽特別的東西,適合入門級別的

我的第一個python爬蟲豆瓣top250前100部電影

爬取豆瓣top250前100部電影   1 # -*-coding=UTF-8 -*- 2 3 import requests 4 from bs4 import BeautifulSoup 5 6 headers = {'User-Agent':'Moz

python爬蟲鏈家深圳全部二手房的詳細信息

data sts rip 二手房 lse area 列表 dom bubuko 1、問題描述: 爬取鏈家深圳全部二手房的詳細信息,並將爬取的數據存儲到CSV文件中 2、思路分析: (1)目標網址:https://sz.lianjia.com/ershoufang/ (2

Python爬蟲網站電影資訊

以爬取電影天堂喜劇片前5頁資訊為例,程式碼如下: 1 # coding:UTF-8 2 3 import requests 4 import re 5 6 def mov(): 7 headers={'User-Agent':'Mozilla/5.0 (Windo

Python爬蟲拉勾網資料分析崗位資料

1 JSON介紹 JSON(JavaScript Object Notation)已經成為通過HTTP請求在Web瀏覽器和其他應用程式之間傳送資料的標準格式之一。比CSV格式更加靈活。Json資料格式,非常接近於有效的Pyhton程式碼,其特點是:JSON物件所

Python資料分析】簡單爬蟲知乎神回覆

歡迎加入Python學習交流QQ群:535993938  禁止閒聊 ! 名額有限 ! 非喜勿進 !       看知乎的時候發現了一個 “如何正確地吐槽” 收藏夾,

爬蟲圖片儲存在某路徑下

import re import urllib.request def getHtml(url): page=urllib.request.urlopen(url) html=page.read() return html def getImg(html):

爬蟲圖片保存在某路徑下

page err space print ont quest erro += .html import re import urllib.request def getHtml(url): page=urllib.request.urlopen(url)

Python爬蟲指定網址圖片

import re import urllib.request def gethtml(url): page=urllib.request.urlopen(url) html=page.

python爬蟲貓眼電影分數的處理和多執行緒

爬取用的庫是requests和beautifulsoup,程式碼編寫不難,主要是個別的細節處理需要注意 1、電影得分的處理 右鍵審查元素,我們看到分數的整數部分和小數部分是分開的,在beautifulsoup中,我們可以用(.strings或者.stripped_stri

Python爬蟲微信文章

import requests from urllib.parse import urlencode from requests.exceptions import ConnectionError from pyquery import PyQuery as

Python 爬蟲5——下載網頁指定規格的圖片

        看完上篇文件之後,我們對於正則表示式已經有了基本的瞭解,其實學習最有效的辦法就是帶著問題和目的,這裡我們假設有一個目標:獲取某個網頁上指定規格的圖片的連結地址,並下載到本地。 一、實

Python題目4電影

sts pip pytho 靜態網頁 下載 返回 link 編碼格式 模塊 import re # 正則表達式,用於提取數據 import requests # 下載網頁源代碼 ‘‘‘ 安裝requests模塊:pip install requests 參考文檔:htt