【爬虫笔记】爬虫基础
生活随笔
收集整理的這篇文章主要介紹了
【爬虫笔记】爬虫基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、技術選型
- 二、網頁分類
- 三、正則表達式
- 四、深度優先和廣度優先
- 1、網站的樹結構
- 2、深度優先算法和實現
- 3、廣度優先算法和實現
- 五、爬蟲去重策略
- 六、字符串編碼
- 1、發展
- 2、轉換
爬蟲基礎
- 正則表達式
- 深度優先和廣度優先遍歷算法
- url去重的常見策略
爬蟲應用
- 搜索引擎——baidu、Google、垂直領域搜索引擎(知道爬什么內容什么網站)
- 推薦引擎——toutiao
- 機器學習的數據樣本
- 數據分析(eg:金融數據分析)、輿情分析等
一、技術選型
技術選型:scrapy + requests
scrapy vs. requests + beatuifulSoup
- requests和beatuifulSoup都是庫,scrapy是框架
- scrapy框架中可以加入requests和beatuifulSoup
- scrapy基于twisted,性能優勢大
- scrapy易于擴展,提供很多內置功能
- scrapy內置css和xpath selector非常方便,beatuifulSoup慢
二、網頁分類
常見類型的服務
- 靜態網頁
- 動態網頁
- webservice(restapi)
三、正則表達式
對爬蟲的內容進行處理,eg:5天前==》2019.04.30
特殊字符
- ^ $ * ? {2} {2, } {2, 5} |
- [] [^] [a-z] .
- \s \S \w \W
- [\u4E00-\u9FA5] () \d
四、深度優先和廣度優先
1、網站的樹結構
網站url的結構圖
網站url鏈接的結構圖
2、深度優先算法和實現
輸出:A、B、D、E、I、C、F、G、H
==》遞歸實現
3、廣度優先算法和實現
輸出:A、B、C、D、E、F、H、G、I
==》隊列實現
五、爬蟲去重策略
常用方法
六、字符串編碼
Unicode、utf-8
1、發展
- 計算機只能處理數字,文本轉換為數字才能被處理,計算機中8個bit作為一個字節,所以一個字節能表示最大的數字就是255.
- 計算機是美國人發明的,所以一個字符就可以表示所有字符了,所以ASCII(一個字節)編碼就成為美國人的標準編碼
- 但是ASCII處理中文明顯不夠,中文不止255個漢字,所以中國定制了GB2312編碼,用兩個字節表示一個漢字。GB2312還把ASCII包含進去;同理,日文、韓文等上百個國家為了該問題都創建了一套字節的編碼。隨著標準越來越多,若出現多種語言混合顯示就一定會出現亂碼。
- 將所有語言統一到一套編碼中——Unicode(兩個字節)
- 雖然解決了亂碼問題,但是若內容全為英文,則Unicode編碼比ASCII需要多一倍的存儲空間,同時若傳輸也需要多一倍的傳輸。
- 解決方法:utf-8(可變長的編碼),將英文變成一個字節,漢字三個字節,特別生僻的變成4-6個字節。 若傳輸大量的英文,utf-8的作用就明顯了。
2、轉換
python3
- 文件默認編碼是utf-8 , 字符串編碼是 unicode
- 以utf-8 或者 gbk等編碼的代碼,加載到內存,會自動轉為unicode正常顯示。
python2
- 文件默認編碼是ascii , 字符串編碼也是 ascii , 如果文件頭聲明了是gbk,那字符串編碼就是gbk。
- 以utf-8 或者 gbk等編碼的代碼,加載到內存,并不會轉為unicode,編碼仍然是utf-8或者gbk等編碼。
總結
以上是生活随笔為你收集整理的【爬虫笔记】爬虫基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】word2vec 中的数学原理详
- 下一篇: 【爬虫笔记】Scrapy爬虫技术文章网站