原创 Python網絡爬蟲(二十三)——Redis

概述 redis 是一種支持分佈式的非關係型數據庫,數據是保存在內存中,同時 redis 可以定時把內存數據同步到磁盤,即可以將數據持久化,並且 Redis 比 memcached 支持更多的數據結構。 redis 和 memcached

原创 Python網絡爬蟲(十九)——CrawlSpider

在之前 Scrapy 的基本使用當中,spider 如果要重新發送請求的話,就需要自己解析頁面,然後發送請求。而 CrawlSpider 則可以通過設置 url 條件自動發送請求。 CrawlSpider 是 Spider 的一個派生類,

原创 Python網絡爬蟲(二十四)——Scrapy-Redis

Scrapy 是一個框架,他本身是不支持分佈式的。如果我們想要做分佈式的爬蟲,就需要藉助一個組件叫做 Scrapy-Redis,這個組件正是利用了 Redis 可以分佈式的功能,集成到 Scrapy 框架中,使得爬蟲可以進行分佈式。可以充

原创 Python網絡爬蟲(二十二)——Downloader Middlewares

在 Scrapy 框架中的 Engine 和 Downloader 之間存在一個 Downloader Middlewares,我們知道 spider 發送的請求需要通過 Engine 發送給 Downloader 進行下載,而 Down

原创 Python網絡爬蟲(二十一)——Request 和 Response

Request class Request(object_ref): def __init__(self, url, callback=None, method='GET', headers=None, body=None,

原创 Python網絡爬蟲(十八)——Scrapy基本使用

因爲 Scrapy 作爲爬蟲的一個工具來說功能比較強大,這裏會分幾篇文章來說明。 創建項目 Scrapy 的項目構建是通過終端完成的,在要放置項目的目錄下執行: scrapy startproject projectname 此時就在終

原创 Python網絡爬蟲(二十)——Scrapy Shell

之前我們使用 Scrapy 簡單實驗了一下該框架,利用該框架確實使整個過程簡單了很多,能夠使用戶更加專注於整體的實現而不是細枝末節。但是也有一點不太方便,就是在調試代碼的代碼的時候,需要等待較長的時間才能夠看到結果,這也會影響整個開發的效

原创 Python網絡爬蟲(十七)——Scrapy架構

概述 對於爬蟲來說,整個爬蟲包括了網絡請求、數據解析、數據請求、設置代理、多線程等內容,這些部分在之前的內容中都分別進行了說明。因此如果在之前要完成一個爬蟲的話,就要使用上面提到的所有工具,從頭開始一步一步構建自己的爬蟲,這無疑是一項繁瑣

原创 Python網絡爬蟲(十二)——MySQL

簡介 MySQL 是一種關係型數據庫管理系統,關係數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。 GUI 有時候使用 cmd 進行數據庫操作不太方便,因此會藉助於 GUI 來進行數據庫的編

原创 Python網絡爬蟲(十五)——Selenium

AJAX 對於靜態網頁來說,在你發出請求的時候會請求全部的資源,而對於網頁資源涉及較多,有一部分資源加載較慢的網頁來說,等所有的資源全部加載完畢之後才顯示整個網頁的策略則會大大影響用戶的使用。而動態網頁則可以避免這個問題。 異步 Java

原创 Python網絡爬蟲(十四)——threading

簡介 對於爬取圖片或者爬取章節數目過多的小說來說,採取同步的方式進行下載會導致效率的下降,這對於網絡爬蟲來說是一個很大的缺陷。而使用多線程則可以避免這個問題,提高整個爬取過程的效率。 多線程(multithreading),是指從軟件或者

原创 Python網絡爬蟲(十三)——MongoDB

簡介 MongoDB 是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。 MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數

原创 Python網絡爬蟲(十六)——Tesseract

對於用戶來說,當然希望自己的爬蟲能夠爬取到自己想要的資源,但是對於服務來說,有時候卻並不希望自己服務器上的資源那麼輕易的被爬蟲獲取到。因此就出現了反爬蟲,圖形驗證碼就是這樣一種機制。 各種驗證碼可以說是判斷操作者是人還是機器的一個重要手段

原创 Python網絡爬蟲(十一)——csv

簡介 逗號分隔值(Comma-Separated Values,csv),有時也稱爲字符分隔值,因爲分隔字符也可以不是逗號 逗號分隔值文件以純文本形式存儲表格數據 CSV 文件由任意數目的記錄組成,記錄間以某種換行符分隔 每條記錄由字段組

原创 Python網絡爬蟲(九)——re

正則表達式 正則表達式(Regular Expression)是一種文本模式,包括普通字符(如 a-z)和特殊字符(元字符) 正則表達式使用單個字符串來描述,用來匹配一系列滿足某個句法規則的字符串 匹配規則 匹配某個字符串 import