一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【雜談】爬蟲基礎與快速入門指南

 有三AI 2020-11-27

1 前端網頁基礎

在介紹爬蟲之前我們先介紹一下網頁基礎,理解前端網頁有利于我們對后面爬蟲的學習,它是爬蟲的基礎之一。

1.網頁構成

通常來說網頁由三部分組成,分別為 HTML、CSS 以及 Javascript。HTML 承擔網頁內容,CSS 負責對網頁的排版美化,而 Javascript 則使得網頁更加有交互性。接下來我們分別介紹這三個部分。

(1) HTML,即 HyperText Mark-up Language,中文名超文本標記語言。超文本指的是超鏈接,標記指的是標簽,所以 HTML 文件由一個個標簽所組成的。

(2) CSS 即層疊樣式表,它用來定義如何顯示控制 HTML 元素,像拼圖一樣對 HTML 標簽進行拼圖,得到美觀,優(yōu)雅的網頁顯示效果。

(3) JavaScript,上面介紹的 HTML 和 CSS 只能展現(xiàn)一種靜態(tài)的信息,缺乏交互性。我們在網頁中看到的諸如輪播圖等動態(tài)效果,都是基于 Javascript 實現(xiàn)的。在前后端分離的開發(fā)中,Javascript 還會擔任一部分的邏輯操作。它的出現(xiàn)使得用戶與網頁信息之間不再只是一種冷冰冰的瀏覽與顯示關系,而是實現(xiàn)了一種實時、動態(tài)、交互的頁面功能。

2.URL

爬蟲最主要的處理對象就是 URL,通過對 URL 的解析互取所需要的內容,然后再做進一步的處理。其格式由3部分組成:

(1) 協(xié)議,它告訴瀏覽器如何處理將要打開的文件。如大家常見的 http、https。

(2) 存有該資源的主機的IP地址(有時也包括端口號)

(3) 路徑,一般來說不同部分之間以斜線(/)分隔。

2 爬蟲基礎概述

在了解了網頁的一些基礎知識之后,我們來繼續(xù)學習一下爬蟲的基礎概念,以及 python 爬蟲的一些庫。我會首先介紹 robots.txt 文檔,即 robots 協(xié)議,讓大家合理、合法的進行網絡爬蟲。然后我們介紹 Requests 庫,它可以幫助我們自動爬取 HTML 頁面、自動網絡請求提交 。接下來我們針對爬取回來的頁面介紹數據解析庫,如 lxml、re、beautifulsoup,它們可以很好地幫助我們解析 html 數據,并幫助我們提取信息。

1.robots.txt

robots.txt 即 robots 協(xié)議,存在于幾乎每個網站的根目錄,用來告訴我們此網站哪些數據是可以通過爬蟲獲取的,哪些內容是不應該被爬蟲獲取的。對于沒有設定 robots 協(xié)議的網站,我們可以通過爬蟲獲取沒有口令加密的數據,也就是可以獲取該網站的全部數據。如果網站有 robots.txt 文檔,我們就要判斷是否禁止訪客獲取數據。

2.數據爬取

Python 擁有很多優(yōu)秀的開源庫,針對爬蟲,python2 有 urllib1、2,python3 有自帶的 urllib庫。接下來我們以 python3(以下默認為 python )為例,介紹 urllib。

(1) urllib 介紹

Python urllib庫官方文檔鏈接:

https://docs./3/library/urllib.html

在這個頁面中我們可以選擇對應的 python 版本進行 urllib 庫的學習。

(2) urllib 基礎用法

urllib 中包括了四個模塊,request 模塊可以用來實現(xiàn)網頁請求和響應獲取;parse 模塊用來解析和處理 URL;error 包含了對 request 模塊產生異常的異常處理;robotparse 用來解析頁面的robots.txt 文件。

從上面的代碼我們可以看到,urllib.request 模塊提供了最基本的構造 HTTP 請求方法,可以模擬瀏覽器的一個請求發(fā)起過程。同時它還帶有處理 authenticaton(授權驗證),redirections(重定向), cookies(瀏覽器 Cookies)以及其它內容。該函數會返回HTTPResposne類型的對象,使用response.read() 就可以得到返回的網頁內容,再使用decode(“utf-8”)解碼字符串,就可以獲取網頁。同時,我們還使用了正則表達表達式來提取數據,以獲得我們想要的信息。

3.數據解析

我們通過上面的學習,了解了如何使用 urllib 進行數據爬取。但只對數據進行爬取是不足夠的,所以我們要學習使用數據解析庫,對爬取的數據進行數據解析。數據解析方面的庫有:beautifulsoup4、lxml、re 等。接下來我們以 BeautifulSoup 為例,來看一下數據解析過程:

3 爬蟲框架

通過上面的基本爬蟲的簡單學習,我們發(fā)現(xiàn)使用原始的爬蟲存在著低效率、代碼量大的缺點,一般只能用作小型項目的爬蟲。接下來我們會介紹一個爬蟲框架,我們現(xiàn)在有了基礎爬蟲的知識,所以這個框架我們可以快速的上手,實現(xiàn)中等規(guī)模的爬蟲。

1.Scrap 框架介紹

Scrapy 框架是一個專門由 python 開發(fā)的,用于快速、高層次的屏幕抓取和 web 抓取框架,用于抓取 web 站點并從頁面中提取結構化的數據。Scrapy 框架可以用于數據挖掘、監(jiān)測和自動化測試。它提供用戶進行各種類型爬蟲的編寫,如我們前面提到的增量式網絡爬蟲等。

2. Scrapy 的安裝

pip install scrapy

3. Scrapy 框架的基本使用

Scrapy 框架命令分為兩種,一種是全局命令,另一種是項目命令。全局命令顧名思義,就是在哪里都可以去使用,項目命令是只有在爬蟲項目中才可使用的命令。全局命令和項目命令可以在命令行窗口使用 scrapy -h 來查看。

在爬蟲中,我們常用的命令有:

scrapy startproject  # 創(chuàng)建一個爬蟲項目

scrapy genspider    # 在項目下創(chuàng)建一個爬蟲 spider 類

scrapy runspider     # 運行一個 spider 類文件

scrapy crawl            # 通過名稱指定爬取信息

scrapy shell             # 使用命令行與 scrapy 交互

scrapy list                # 查看當前項目下有多少個爬蟲 

4. Scrapy 使用實戰(zhàn)

(1) 首先使用 scrapy startproject scarpy_demo 命令創(chuàng)建一個名為 scarpy_demo 爬蟲項目.

目錄結構說明:

(2) cd scarpy_demo 進入項目目錄,使用 scrapy genspider demo www.baidu.com 創(chuàng)建一個 spider 類文件

(3) 進入 items.py 創(chuàng)建自己的 Item 容器類

引用這個  ScrapyDemoItem 類,在 spider/demo.py 開頭加上

解析 respone 信息,并封裝到 item中,再使用 Item Pipeline 管道對解析出來的 Item 數據進行清理、驗證、去重、存儲等操作。

開啟 Item Pipeline 注釋以及以 json 格式保存數據

scrapy crawl demo -o json

4 開源項目推薦

1. 圖片爬蟲

當我們開始一個新任務的時候,可以用搜索引擎爬小批量的數據。

GitHub 地址:https://github.com/sczhengyabin/Image-Downloader

特點:

(1) 圖片種類豐富(所有類型)

(2) 爬取速度快(200張/分)

(3) 接口穩(wěn)定且使用簡單

但是爬取數量有限制,通常一個關鍵字不能超過2000張。

2. 視頻爬蟲

GitHub 地址:https://github.com/iawia002/annie

annie [OPTIONS] URL [URL...]

3. 復雜爬蟲

GitHub 地址:https://github.com/chenusc11/flickr-crawler

(1) 注冊 Flickr API Key

按照網頁引導申請API Key。

(2) 調用接口

其中函數 flickr.photos_search() 可以獲得大中小三種不同尺寸的圖像,參數 tags 是我們的關鍵詞。

photos=flickr.photos_search(tags=tags,tag_mode='all',per_page=number)

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品亚洲欧美一区麻豆| 欧美综合色婷婷欧美激情| 福利视频一区二区三区| 国产精品香蕉一级免费| 男人和女人黄 色大片| 欧美日韩精品综合一区| 中文字幕一区二区熟女| 国语久精品在视频在线观看| 国产丝袜美女诱惑一区二区| 日本熟妇五十一区二区三区| 好吊妞在线免费观看视频| 日韩黄片大全免费在线看| 国产韩国日本精品视频| 欧美黑人黄色一区二区| 能在线看的视频你懂的| 欧美精品女同一区二区| 午夜福利视频偷拍91| 麻豆印象传媒在线观看| 色哟哟哟在线观看视频| 精品人妻av区波多野结依| 九七人妻一区二区三区| 国产午夜福利在线免费观看| 少妇被粗大进猛进出处故事| 激情丁香激情五月婷婷| 久久亚洲午夜精品毛片| 精品亚洲av一区二区三区| 亚洲第一区二区三区女厕偷拍| 日韩精品一区二区三区射精| 性欧美唯美尤物另类视频| 日本久久精品在线观看| 麻豆印象传媒在线观看| 欧美成人黄色一级视频| 日韩一区中文免费视频| 国内精品美女福利av在线| 亚洲精品成人综合色在线| 亚洲熟女国产熟女二区三区| 精品国产日韩一区三区| 美女被啪的视频在线观看| 好吊妞视频这里有精品| 98精品永久免费视频| 国产精品一区二区成人在线|