所謂的爬蟲,就是通過模擬點擊瀏覽器發送網路請求,接收站點請求響應,獲取互聯網信息的一組自動化程式。 也就是,只要瀏覽器(客戶端)能做的事情,爬蟲都能夠做。 現在的互聯網大數據時代,給予我們的是生活的便利以及海量數據爆炸式的出現在網路中。除了網頁,還有各種手機APP,例如微信、微博、抖音,一天產生高達 ...
所謂的爬蟲,就是通過模擬點擊瀏覽器發送網路請求,接收站點請求響應,獲取互聯網信息的一組自動化程式。 也就是,只要瀏覽器(客戶端)能做的事情,爬蟲都能夠做。
現在的互聯網大數據時代,給予我們的是生活的便利以及海量數據爆炸式的出現在網路中。除了網頁,還有各種手機APP,例如微信、微博、抖音,一天產生高達億計的狀態更新信息, 百度任意一個詞條,也可以得到無數相關信息,但是我們得到了海量的信息,但是大多數都是無效的垃圾信息,在海量的信息中,要篩選來得到有用的信息,手動篩選不僅效率慢,還費時;但利用爬蟲和資料庫,不僅可以保存相關特定的數據,還可以通過特定的程式來篩選出有用的信息。
可以用來爬蟲的語言有很多,常見的有PHP,JAVA,C#,C++,Python等,由於Python有足夠相關的庫,用python做爬蟲相對比較簡單,且功能比較齊全。
下麵就先瞭解一下基於python爬蟲基本配置:
1、由於一直是用基於anaconda平臺的python,繼續使用,具體安裝可以參考python入門基礎(1)—安裝
2、為了方便大家安裝,特意彙總了一下可能需要安裝python相關庫,直接在Anaconda prompt中粘貼以下代碼,即可自動安裝,直至安裝完成。
pip3 install urllib3 -i https://mirrors.aliyun.com/pypi/simple/
pip3 install requests -i https://mirrors.aliyun.com/pypi/simple/
pip3 install selenium -i https://mirrors.aliyun.com/pypi/simple/
pip3 install chromedriver -i https://mirrors.aliyun.com/pypi/simple/
pip3 install phantomjs -i https://mirrors.aliyun.com/pypi/simple/
pip3 install lxml -i https://mirrors.aliyun.com/pypi/simple/
pip3 install beautifulsoup4 -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pyquery -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pymysql -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pymongo -i https://mirrors.aliyun.com/pypi/simple/
pip3 install redis -i https://mirrors.aliyun.com/pypi/simple/
pip3 install flask -i https://mirrors.aliyun.com/pypi/simple/
pip3 install django -i https://mirrors.aliyun.com/pypi/simple/
pip3 install jupyter -i https://mirrors.aliyun.com/pypi/simple/
pip3 install splash -i https://mirrors.aliyun.com/pypi/simple/
pip3 install docker -i https://mirrors.aliyun.com/pypi/simple/
pip3 install scapy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install spyder -i https://mirrors.aliyun.com/pypi/simple/
pip3 install matplotlib -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pandas -i https://mirrors.aliyun.com/pypi/simple/
pip3 install scikit-learn -i https://mirrors.aliyun.com/pypi/simple/
pip3 install GeckoDriver -i https://mirrors.aliyun.com/pypi/simple/
pip3 install PhantomJS -i https://mirrors.aliyun.com/pypi/simple/
pip3 install aiohttp -i https://mirrors.aliyun.com/pypi/simple/
pip3 install tesserocr -i https://mirrors.aliyun.com/pypi/simple/
pip3 install RedisDump -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Tornado -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Charles -i https://mirrors.aliyun.com/pypi/simple/
pip3 install mitmproxy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install mitmdump -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Appium -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pyspider -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapy-Splash -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapy-Redis -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Docker -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd-Client -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapyd API -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Scrapydrt -i https://mirrors.aliyun.com/pypi/simple/
pip3 install Gerapy -i https://mirrors.aliyun.com/pypi/simple/
pip3 install pygame -i https://mirrors.aliyun.com/pypi/simple/
pip3 install nbconvert -i https://mirrors.aliyun.com/pypi/simple/
至於每個庫是具體是做什麼用的,大致可以分為以下幾類:
1)請求庫:requests 、Selenium、ChromeDriver、GeckoDriver、phantomJS、aiohttp,主要是用來實現http請求操作。
2)解析庫:lxml、BeautifulSoup、pyquery、tesserocr,抓取網頁代碼後,需要從網頁中提取有用信息,解析庫就提供了非常強勁的解析方法,可以高效、便捷從網頁代碼中提取有用的信息。
3)資料庫:Mysql、MongoDB、redis,資料庫作為數據存儲的重要部分,也是爬蟲中必不可少的一部分,主要用來存儲提取到的有用信息。具體安裝,自行百度一下。
4)存儲庫:PyMySQL,PyMongo、redis-py、redisDump,你可以將這幾個當成是python程式與資料庫mysql/mongodb/redis等介面,資料庫用來提供存儲服務,保存數據,而存儲庫是用來在兩者之間進行交互的。
5)web庫:flask、tornado庫,主要是用web庫程式來搭建一些API介面,供我們的爬蟲使用。
6)app庫:Charles、mitmproxy、mitmdump、Appium,手機APP數據量也非常大,爬蟲也可以抓取APP的數據,因此可以用一些抓包技術來抓取數據。
7)爬蟲框架:pyspider、Scrapy、Scrapy-Splash、Scrapy-redis等,框架可以簡化代碼,架構清晰,只需要關心爬取邏輯。
8)部署相關庫:Docker、Scrapyd、Scrapyd-Client、Scrapyd API 、Scrapydrt、Gerapy。
如果想要大規模抓取數據,就會用到分散式爬蟲。對於分散式當使用分散式爬蟲,需要多台主機,每台主機有多個爬蟲任務,但源代碼其實只有一份。
將一份代碼同時部署到多台主機上,進行協同運行。Scrapy有一個擴展組件,叫作 Scrapyd,只需要安裝該擴展組件,即可遠程管理Scrapy 任務,
包括部署源碼、啟動任務、監聽任務等。另外,還有 Scrapyd-Client 和 Scrapyd API來幫助我們更方便地完成部署和監聽操作。
另外一種部署方式,那就是 Docker 集群部署。只需要將爬蟲製作為 Docker 鏡像,只要主機安裝了Docker,就可以直接運行爬蟲,而無需再去擔心環境配置、版本問題。
後面我們再分別針對上述幾個部分分別作詳細介紹。
翻譯
搜索
複製