电竞比分网-中国电竞赛事及体育赛事平台

分享

Python爬蟲要如何學習,才能快速入門

 flyk0tcfb46p9f 2019-05-02

網絡爬蟲為搜索引擎從萬維網下載網頁。一般分為傳統(tǒng)爬蟲和聚焦爬蟲。

傳統(tǒng)爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統(tǒng)的一定停止條件。通俗的講,也就是通過源碼解析來獲得想要的內容。

聚焦爬蟲的工作流程較為復雜,需要根據(jù)一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接并將其放入等待抓取的URL隊列。然后,它將根據(jù)一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,并重復上述過程,直到達到系統(tǒng)的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統(tǒng)存貯,進行一定的分析、過濾,并建立索引,以便之后的查詢和檢索;對于聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。

爬蟲只是為了獲取數(shù)據(jù),分析、挖掘這些數(shù)據(jù)才是價值,因此它還可以延伸到數(shù)據(jù)分析、數(shù)據(jù)挖掘等領域,給企業(yè)做決策,所以作為一名爬蟲工程師,是大有可為的。

那么是不是一定要把上面的知識全學完了才可以開始寫爬蟲嗎?當然不是,學習是一輩子的事,只要你會寫 Python 代碼了,就直接上手爬蟲,好比學車,只要能開動了就上路吧,當然寫代碼可比開車安全多了。

入門爬蟲,學習正則表達式并不是必須的,你可以在你真正需要的時候再去學,比如你把數(shù)據(jù)爬取回來后,需要對數(shù)據(jù)進行清洗,當你發(fā)現(xiàn)使用常規(guī)的字符串操作方法根本沒法處理時,這時你可以嘗試了解一下正則表達式,往往它能起到事半功倍的效果。Python 的 re 模塊可用來處理正則表達式。

數(shù)據(jù)清洗完最終要進行持久化存儲,你可以用文件存儲,比如CSV文件,也可以用數(shù)據(jù)庫存儲,簡單的用 sqlite,專業(yè)點用 MySQL,或者是分布式的文檔數(shù)據(jù)庫 MongoDB,這些數(shù)據(jù)庫對Python都非常友好,有現(xiàn)成的庫支持。 Python操作MySQL數(shù)據(jù)庫 通過Python連接數(shù)據(jù)庫。

關于實踐

網上的爬蟲教程多如牛毛,原理大體相同,只不過是換個不同的網站進行爬取,你可以跟著網上的教程學習模擬登錄一個網站,模擬打卡之類的,爬個豆瓣的電影、書籍之類的。通過不斷地練習,從遇到問題到解決問題,這樣的收獲看書沒法比擬的。

爬蟲常用庫
  • urllib、urlib2(Python中的urllib)python內建的網絡請求庫
  • urllib3:線程安全的HTTP網絡請求庫
  • requests:使用最廣泛的網絡請求庫,兼容py2和py3
  • grequests:異步的requests
  • BeautifulSoup:HTML、XML操作解析庫
  • lxml:另一種處理 HTML、XML的方式
  • tornado:異步網絡框架
  • Gevent:異步網絡框架
  • Scrapy:最流行的爬蟲框架
  • pyspider:爬蟲框架
  • xmltodict:xml轉換成字典
  • pyquery:像jQuery一樣操作HTML
  • Jieba :分詞
  • SQLAlchemy:ORM框架
  • celery :消息隊列
  • rq:簡單消息隊列
  • python-goose :從HTML中提取文本

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多