摘要:想辦法區(qū)分爬蟲程序和正常的用戶。爬蟲是工具性程序,對速度和效率要求較高。生態(tài)圈完善,是最大對手。最要命的是爬蟲需要經(jīng)常修改部分代碼。爬蟲分類通用爬蟲也就是百度搜狐等搜索引擎。原本是為測試來測試網(wǎng)站的,后來成了爬蟲工程師最喜愛的工具。
一、爬蟲的基本知識:
1. 什么是爬蟲
爬蟲的英文翻譯為spider或者crawder,意為蜘蛛或者爬行者,從字面意思我們可以體會到:爬蟲就是把自己當做蜘蛛或者爬行者,沿著既定路線,爬到指定節(jié)點,獵取食物獲取目標。在這里我們的蜘蛛網(wǎng)即互聯(lián)網(wǎng),我們爬取的方法即為路徑,我們所要獲取的數(shù)據(jù)即為食物或目標。
2. 爬蟲的核心
爬取網(wǎng)頁
解析數(shù)據(jù)
難點:與反爬蟲博弈(反爬蟲: 資源的所有者,想要保護資源,避免被第三方爬蟲程序批量的把資源下載下去。想辦法區(qū)分爬蟲程序和正常的用戶。)
3. 爬蟲的語言
php:雖然是世界上最好的語言,但是天生不是干爬蟲的命,PHP對多線程、異步支持不足,并發(fā)不足。爬蟲是工具性程序,對速度和效率要求較高。
java:生態(tài)圈完善,是Python最大對手。但是Java本身很笨重,代碼量大。重構成本比較高,任何修改都會導致大量代碼的變動。最要命的是爬蟲需要經(jīng)常修改部分代碼。
CC++:運行效率和性能幾乎最強,但是學習成本非常高,代碼成型較慢,能用C/C++寫爬蟲,說明能力很強,但是不是最正確的選擇
Python:語法優(yōu)美、代碼簡介、開發(fā)效率高、三方模塊多,調用其他接口也方便。有強大的爬蟲Scrapy,以及成熟高效的scrapy-redis分布式策略。
4. 爬蟲分類
通用爬蟲
也就是百度、Google、360、搜狐、firefox等搜索引擎。特點是爬取網(wǎng)站所有內容、但不能根據(jù)客戶需求給出特定內容。在這里,各家瀏覽器根據(jù)其pagerank分進行網(wǎng)站搜索的排名,同時還有競價排名。
聚焦爬蟲
就是現(xiàn)在我們這些爬蟲程序員所進行的工作,就是根據(jù)客戶的需求,爬取指定網(wǎng)站的特定內容。
1. 首先要理解什么是http/https協(xié)議
http協(xié)議:菜鳥教程:http協(xié)議詳解
https協(xié)議:菜鳥教程:https協(xié)議詳解
2. python基礎知識
urllib.request
urllib.parse
正則表達式等等基礎知識。
3. 開發(fā)工具
pacharm:下載安裝請參考菜鳥教程:pycharm下載安裝教程
sublime Text3:下載安裝請參考菜鳥教程:sublime下載安裝
4. 抓包工具
chrome瀏覽器的開發(fā)者模式,在這里可以檢查網(wǎng)頁的各種元素。
fiddler:原本是為測試來測試網(wǎng)站的,后來成了爬蟲工程師最喜愛的工具。這是一款開源軟件,可以直接去官網(wǎng)下載安裝https://www.telerik.com/downl...
postman:可以根據(jù)請求頭信息生成簡單的網(wǎng)頁爬取代碼,界面相對于fiddler也要美觀
motimproxy
三、代碼實現(xiàn)簡單的爬蟲實例
python爬蟲有多簡單,下面我一行代碼爬取百度首頁,如同在瀏覽器輸入網(wǎng)址一樣簡單
import urllib.request urllib.request.urlretrieve("http://www.baidu.com/", "baidu.html")
上面的代碼只能簡單抓取網(wǎng)頁,一旦遇到需要請求頭的反爬蟲時就不能發(fā)揮作用了,所以一般常用的爬蟲代碼如下:
import urllib.request url = "http://www.baidu.com/" request = urllib.request.Request(url) response = urllib.request.urlopen(request) with open("baidu.html", "wb") as f: f.write(response.read())
請求頭反反爬蟲:
import urllib.request #指定url url = "https://www.qiushibaike.com/" #定義請求頭對象 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" } #獲取網(wǎng)頁信息 request = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(request) with open("xiushi.html","wb") as f: f.write(response.read())
今天先寫到這兒了,我爭取做到每日分享,與大家一起學習,一起進步,為了美好的明天,艱苦奮斗。 ————你與別人的差距在加班的時間。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/42013.html
摘要:楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術服務,現(xiàn)整理出零基礎如何學爬蟲技術以供學習,。本文來源知乎作者路人甲鏈接楚江數(shù)據(jù)提供網(wǎng)站數(shù)據(jù)采集和爬蟲軟件定制開發(fā)服務,服務范圍涵蓋社交網(wǎng)絡電子商務分類信息學術研究等。 楚江數(shù)據(jù)是專業(yè)的互聯(lián)網(wǎng)數(shù)據(jù)技術服務,現(xiàn)整理出零基礎如何學爬蟲技術以供學習,http://www.chujiangdata.com。 第一:Python爬蟲學習系列教程(來源于某博主:htt...
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優(yōu)秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結構、語法...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:目錄基于的爬蟲入門環(huán)境搭建基于的爬蟲入門頁面提取基于的爬蟲入門圖片處理下面創(chuàng)建一個爬蟲項目,以圖蟲網(wǎng)為例抓取圖片。 目錄 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建 基于 Python 的 Scrapy 爬蟲入門:頁面提取 基于 Python 的 Scrapy 爬蟲入門:圖片處理 下面創(chuàng)建一個爬蟲項目,以圖蟲網(wǎng)為例抓取圖片。 一、內容分析 打開 圖蟲網(wǎng),頂部菜單發(fā)現(xiàn)...
摘要:一基礎環(huán)境由于不是職業(yè)的開發(fā)者,因此環(huán)境是基于的。二安裝打開命令行工具創(chuàng)建虛擬環(huán)境,默認情況下會創(chuàng)建目錄,所有的虛擬環(huán)境都會產生一個子目錄保存在此,里面包含基本程序文件以及庫文件。 目錄 基于 Python 的 Scrapy 爬蟲入門:環(huán)境搭建 基于 Python 的 Scrapy 爬蟲入門:頁面提取 基于 Python 的 Scrapy 爬蟲入門:圖片處理 作為一個全棧工程師(...
閱讀 1892·2021-11-22 09:34
閱讀 3182·2019-08-30 15:55
閱讀 752·2019-08-30 15:53
閱讀 2131·2019-08-30 15:52
閱讀 3062·2019-08-29 18:32
閱讀 2078·2019-08-29 17:15
閱讀 2459·2019-08-29 13:14
閱讀 3611·2019-08-28 18:05