Scrapy和相關知識

爬蟲背景知識:
大數據的時代?數據怎么來的呢?

企業(yè)產生的數據:大的公司會根據用戶的行為記錄數據,數據會被大公司利用
,可以用來做數據的分析

數據平臺的數據:

政府和機構的數據:

數據咨詢平臺的數據:

  • 爬蟲:以上平臺或者機構不能夠提供我們需要的數據,
    這時就需要爬蟲工程師,根據需求從互聯網上抓取數據?

什么是爬蟲?
就是一段自動抓取互聯網數據的程序或腳本

網頁的三大特性?:
1.每一個網頁都有自己唯一的URL地址(統(tǒng)一資源定位符)
2.網頁都是通過HTML(超文本)來展示數據的
3.網頁是通過http/https(超文本傳輸協議)來傳輸html的

爬蟲最基本的步驟?:
1.尋找目標url,發(fā)起請求
2.獲取請求的響應結果,分析響應結果
3.從響應結果中提取數據
a.第一部分,從網頁中提取的目標數據
b.如果存在新的url地址,則提取,繼續(xù)發(fā)起請求
爬蟲結束:所有的目標url全部請求完畢,爬蟲結束

  • 數據的用途:
    1.可以爬取數據,寫自己的網站
    2.搜索引擎
    3.購物助手
    4.日常數據的基本分析(知乎數據冰山專欄)
    做爬蟲并不只有python可以完成:
    java php c/c++ switch ...
    java:是python寫爬蟲的最大的競爭對手,java的發(fā)展周期
    長,生態(tài)圈都比較完善,也有很多第三方庫的支持,java的代
    碼量比較大,開發(fā)的成本比較高,后期維護也比較繁瑣.(以后可以去學習了解)
    php:php曾經被叫做世界上最好的語言(一般用來后端的),
    也可以用來寫爬蟲,但是對多任務的支持不太好,爬蟲對效
    率要求比較高,所有一般不適用php寫爬蟲
    c/c++:比較偏向于底層的語言,代碼的運行效率高,學習的
    門楷非常高,代碼成型比較慢.
    python:代碼簡單易懂,并且第三方的庫也有很多,python
    自帶的urllib網絡請求模塊,requests網絡請求模塊,網絡
    解析庫xpath,BeautifulSoup4,pyquery等等,還有成熟
    高效穩(wěn)定的爬蟲框架scrapy(pyspider)等等,并且還支持
    分布式爬蟲(scrapy-redis)框架

爬蟲的分類(通用爬蟲,聚焦爬蟲):

  • 通用爬蟲:是搜索引擎的重要組成部分
    作用和目的:盡可能全的將互聯網上所有的網頁下載到
    本地,通過分詞,去噪等進行預處理,處理后進行數據的持久化(
    鏡像備份),然后提取檢索系統(tǒng)
    獲取數據的步驟):
    a.獲取一些種子url,放入待爬取隊列
    b.從待爬取隊列中取出url發(fā)起請求,將獲取的響應結果
    進行處理,之后存入本地,然后將已爬取的url,放入已爬
    取隊列
    c.從響應結果中獲取外鏈(url),將url放入待爬取隊列中
    DNS服務:將域名轉換為ip的技術

搜索引擎如何獲取新網站的url:
1.向搜索引擎直接提交url地址(https://ziyuan.baidu.com/linksubmit/url)
2.通過網頁的外鏈
3.跟DNS服務商合作,新網站注冊的域對應的網
站將會迅速被搜索引擎抓取
搜索引擎的排名:
1.根據用戶的訪問量和網站的流量進行的排名
2.競價排名:根據價錢進行網站的排名
搜索引擎需要遵守robot協議:
是一個規(guī)范,網站通過robot協議告訴搜索引擎哪些頁面可以爬取,
哪些頁面不可以爬取
https://www.taobao.com/robots.txt
User-agent: Baiduspider(搜索引擎爬蟲名稱)
Allow: /article (允許爬取的url)
Disallow: /product/ (不允許爬取的url)
搜索引擎的缺點:
1.只能夠獲取簡單的文件數據,大型的二進制數據(音頻,視頻)
都不能夠獲取
2.搜索引擎搜索的結果千篇一律,沒有辦法根據特定的用戶,特定的需求
獲取特定的數據
3.搜索引擎搜索結果99%并沒用
由于搜索引擎的缺點,產生了聚焦爬蟲
聚焦爬蟲:是面向主題,面向需求的爬蟲,只獲取跟
需求相關的數據

  • OSI七層協議的目的:實現不同的系統(tǒng)互聯之間的數據通訊,
    實現數據的傳輸.
  • 七層協議:

應用層 表示層 會話程 傳輸層 網絡層 數據鏈路層 物理層
應用層:http/https
傳輸層:TCP/UDP
TCP:網絡傳輸協議,面向連接的,長連接,傳輸的是數據流
,確保數據的安全性和完整性,但是數據傳輸的效率低
UDP:網絡傳輸協議,是非面向連接的,短連接,傳輸的是數據包,
傳輸數據是不安全的,可能會造成數據的丟失,傳輸速度非掣芎樱快

  • http(超文本傳輸協議,端口號是80):

實現從網絡傳輸草文本數據到本地瀏覽器的傳送協議

https(端口號是443):是http的安全版本,在http的基礎上添加了一個
SSL(安全套接字層)層,用于web端的安全傳送,在傳輸層
對網絡連接進行加密,
1.構建了一個安全的數據傳輸通道.
2.保證網站的真實性和有效性
https協議需要有一個證書(CA證書):由專門的證書機構頒發(fā)的,
也可以自己生成,但是訪問的時候會提示連接不安全

  • http的工作原理:

URL介紹:
URI:統(tǒng)一資源標志符
URN:統(tǒng)一資源名稱
URL:統(tǒng)一資源定位符
URI是URN和URL的父類

  • URL的組成部分:
    https://baike.baidu.com/item/OSI/5520?fr=aladdin
    https://book.qidian.com/info/1004608738
    https://book.qidian.com/info/1004608738#Catalog
    scheme:指的是協議(https/http)
    host:值得是服務器的ip或者域名
    port:指的是端口號
    path:資源路徑
    query_string:url地址后面的查詢參數
    anchor(錨點):可以指定要跳轉的位置
    請求的方式都是基于http1.1的版本
    get:只是用于從服務器獲取數據,再url連接后面
    可能會跟一些查詢參數
    post:向服務器端提交數據,數據會放在請求體中,
    一般用于添加或者修改數據
    delete:用來刪除數據
    put:更新整個資源(用來做數據的更新)
    patch:(更新資源)(局部數據的更新)

  • 對比:get和post請求的區(qū)別

1.使用場景:get從服務器端獲取數據,post請求向服務器端提交數據
2.安全性:get請求參數只拼接在url地址上,post請求會將參數放在
請求體中,(注意:不要誤認為只要url地址后面添加了參數就是一個get請求)
3.get請求的url是有長度限制的,post的請求體中可以添加很多字段

  • 常見的請求頭參數:

User-Agent:這個是設置瀏覽器
(設置這個參數模擬瀏覽器請求對方服務器)
Cookie:保存在客戶端中,保存的是用戶信息
Referer:告訴服務器,當前請求是從哪個界面跳轉過來的(防盜鏈)
Accept:可以接受的數據類型....

  • Cookie和Session:目的保持會話

http請求是無狀態(tài)的,每一次請求斷開后,下一次請求就
認為是一個新的請求,為了維持請求狀態(tài)就用到了Cookie
和Session
Cookie:保存在客戶端的,記錄信息確定用戶的身份
Session:保存在服務端的,同樣是記錄信息確定用戶身份

  • 常見的請求狀態(tài)碼:

200:請求成功
3xx:重定向
301:永久重定向
302:臨時重定向
4xx:客戶端請求錯誤
400:請求錯誤,服務器無法解析
401:未授權,沒有進行身份驗證
403:服務器拒絕訪問
404:訪問的頁面不存在
405:請求方式不允許
408:請求超時 5xx:服務端錯誤
500:服務端內部錯誤
501:服務器暫時不具備完成請求的功能
503:服務器不可用

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呐能,隨后出現的幾起案子隶糕,更是在濱河造成了極大的恐慌,老刑警劉巖倒慧,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吱窝,死亡現場離奇詭異,居然都是意外死亡迫靖,警方通過查閱死者的電腦和手機院峡,發(fā)現死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來系宜,“玉大人照激,你說我怎么就攤上這事№锬粒” “怎么了俩垃?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵励幼,是天一觀的道長。 經常有香客問我口柳,道長苹粟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任跃闹,我火速辦了婚禮嵌削,結果婚禮上,老公的妹妹穿的比我還像新娘望艺。我一直安慰自己苛秕,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布找默。 她就那樣靜靜地躺著艇劫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惩激。 梳的紋絲不亂的頭發(fā)上店煞,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音风钻,去河邊找鬼顷蟀。 笑死,一個胖子當著我的面吹牛魄咕,可吹牛的內容都是我干的衩椒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哮兰,長吁一口氣:“原來是場噩夢啊……” “哼毛萌!你這毒婦竟也來了?” 一聲冷哼從身側響起喝滞,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤阁将,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后右遭,有當地人在樹林里發(fā)現了一具尸體做盅,經...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肌厨。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖图筹,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤远剩,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布扣溺,位于F島的核電站,受9級特大地震影響瓜晤,放射性物質發(fā)生泄漏锥余。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一痢掠、第九天 我趴在偏房一處隱蔽的房頂上張望驱犹。 院中可真熱鬧,春花似錦志群、人聲如沸着绷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吁脱,卻和暖如春桑涎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兼贡。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工攻冷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遍希。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓等曼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凿蒜。 傳聞我的和親對象是個殘疾皇子禁谦,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,931評論 2 89
  • 爬蟲概述 1. 目錄清單 爬蟲簡介 通用爬蟲和聚焦爬蟲 網絡請求那些事兒 網絡數據抓包分析 2. 章節(jié)內容 2.1...
    小皇帝s閱讀 689評論 0 1
  • 做了太多次的CocoaPods安裝,每次都沒有記錄废封,這次備案一下州泊,換新電腦可以直接用 第一步:移除現有Ruby默認...
    九月文化閱讀 194評論 0 0
  • 午時突然停電了,接著水也停了漂洋。 等來了電遥皂,一下子感覺癱瘓的家又運轉起來了。 去接水時刽漂,水管就出混濁黃乎乎的水演训,咋辦...
    花孩子閱讀 185評論 0 0
  • 很長一段時間以來,我對學習的態(tài)度都是享樂式的贝咙。是因為信了“無所為而為”样悟,也是因為把“思維的樂趣”這幾個字的重點放在...
    南市四牌樓鹿閱讀 435評論 0 0