日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

【AI白身境】学深度学习你不得不知的爬虫基础

發布時間:2025/3/20 ChatGpt 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【AI白身境】学深度学习你不得不知的爬虫基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天是新專欄《AI白身境》的第七篇,所謂白身,就是什么都不會,還沒有進入角色。

對于深度學習,一個好的數據集可以說非常重要的,但是通常情況下我們并沒有大量的數據,因此我們有必要掌握一定的爬蟲知識,從而更好的準備訓練數據集。

作者 | 湯興旺 言有三

編輯 | 湯興旺 言有三

01

前端網頁基礎

在介紹爬蟲之前我們先說下網頁基礎,理解前端網頁的一些基礎知識對于學習爬蟲是很有必要的,它是爬蟲的基礎之一。


1.1 網頁構成

通常情況下我們看到的網頁由三部分組成,分別是HTML、CSS和JavaScript,接下來我分別介紹它們。

1.1.1 HTML

HTML,全稱Hyper Text Markup Language,也就是“超文本鏈接標示語言”。但它不是一種編程語言,而是一種標記語言。我們通常看到的網頁就是HTML使用標記標簽來描述的。在HTML中,通常不同類型的文字通過不同類型的標簽來表示。如圖片用img標簽表示,視頻用video標簽表示,段落用p標簽表示。

現在我們看下網易云音樂的源代碼,如下圖所示:

獲取這個網頁的源代碼很簡單,打開網頁后,按下F12鍵就會出現這個源代碼了。通過觀察這個HTML我們會發現整個網頁就是由各種標簽嵌套組合而成的,從而形成了整個網頁的架構。

1.1.2 CSS

從上面的介紹我們知道HTML定義了網頁的架構,可以認為是一個框架,但若只有HTML,那么這樣的網頁就太簡陋了,為了讓我們的網頁更加好看點,我們就需要用CSS。

CSS,全稱Cascading Style Sheets,即層疊樣式表?!皩盈B”是指當在HTML中引用了數個樣式文件,并且樣式發生沖突時,瀏覽器能依據層疊順序處理?!皹邮健敝妇W頁中文字大小、顏色、元素間距、排列等格式。我們來看看網易云音樂的CSS,如下所示。

1.1.3 JavaScript

上面介紹的HTML和CSS只能展現一種靜態信息,缺乏交互性。但我們在網頁里通常會看到一些交互和動畫效果,如提示框、輪播圖等,這些動態信息通常就是通過JavaScript完成的。它的出現使得用戶與信息之間不只是一種瀏覽與顯示的關系,而是實現了一種實時、動態、交互的頁面功能。

這就是網頁構成的一些基本知識,你掌握了嗎?


1.2 URL

爬蟲最主要的處理對象是什么?那毫無疑問肯定是URL,爬蟲的實質就是根據URL地址取得所需要的文件內容,然后對它進行進一步的處理。所以說準確理解URL也是理解網絡爬蟲的基礎之一。

URL,全稱是Uniform Resource Locator,通俗地說,URL是Internet上描述信息資源的字符串,主要用在各種WWW客戶程序和服務器程序上。URL也有它特定的格式,其格式由三部分組成,如下:

1.第一部分是協議(或稱為服務方式)。

2.第二部分是存有該資源的主機IP地址(有時也包括端口號)。

3.第三部分是主機資源的具體地址,如目錄和文件名等。

通常第一部分和第二部分用“://”符號隔開,第二部分和第三部分用“/”符號隔開。另外第一部分和第二部分是不可缺少的,第三部分有時可以省略。?

我們通過一個URL的一個小例子來解釋下上面的三部分,下面是NBA中國官方網站湖人隊網頁的URL:

http://china.nba.com/lakers/

http這個是協議,也就是HTTP超文本傳輸協議,它是URL的第一部分;china.nba.com這個是網站名,由服務器名和域名構成,它是URL的第二部分;lakers就是存放網頁的根目錄,是URL的第三部分。

這就是URL的一些基礎知識,希望大家深刻理解。

通過上面的介紹,相信你對網頁的基礎知識也有了大致的了解,下面我們開始學習爬蟲相關庫的一些基礎知識。

02

python爬蟲庫

了解了網頁的一些基礎知識后,我們繼續來學習下python爬蟲的一些庫,通過前面第三篇文章《AI白身境學習AI必備的python基礎》我們都知道python有許多庫,如NumPy,matplotlib等,針對爬蟲它有個自帶的庫urllib。

2.1 urllib介紹? ? ? ? ? ? ? ? ? ? ? ??

urllib是python自帶的一個主要用來爬蟲的標準庫,無需安裝可以直接用,它能完成如下任務:網頁請求、響應獲取、代理和cookie設置、異常處理和URL解析,可以說要想學會爬蟲,必須要學會它。

2.2 urllib基礎用法

我們已經知道urllib能完成網頁請求、響應獲取等許多任務,現在我來介紹下它的基本用法。

2.2.1 發起GET/POST請求

在用urllib實現GET和POST之前,我們先解釋下什么是GET?什么是POST?它們的區別又是啥?

GET和POST實際上就是HTTP請求的兩種基本方法,通常GET是從指定的資源請求數據,而POST是向指定的資源提交要被處理的數據。我們再看看它的區別是啥,請看下面表格:

哈哈,你現在看到這些肯定很悶逼。

我們從頭(HTTP)來分析下,我們已經知道HTTP是基于TCP/IP的關于數據如何在萬維網中如何通信的協議。HTTP的底層是TCP/IP,所以GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP連接,GET和POST能做的事情是一樣的。


那它們的區別體現在哪呢?對于GET方式的請求,瀏覽器會把http header和data一并發送出去;而對于POST,瀏覽器先發送header,服務器響應后,瀏覽器再發送data。


也就是說,在大萬維網世界中,TCP就像汽車,我們用TCP來運輸數據,HTTP給汽車運輸設定了好幾個運輸方式,有GET, POST等。GET只需要汽車跑一趟就把貨送到了,而POST得跑兩趟,第一趟,先去和服務器打個招呼“嗨,我等下要送一批貨來,你們打開門迎接我”,然后再回頭把貨送過去。


你現在明白它們的區別了嗎?我們再看看urllib是如何使用這兩個方法的。

在urllib中有個request這個模塊,它主要是來負責構造和發起網絡請求。它有個urlopen()訪問方法,默認的訪問方法是GET,我們在urlopen()方法中傳入字符串格式的url地址后,此方法會訪問目標網址,然后返回訪問的結果。請看下面的實例:

from urllib import request

url = "https://zhuanlan.zhihu.com/p/20751612"

html = request.urlopen(url).read().decode("utf-8")

print(html)

urlopen()方法請求返回的對象類型為HTTPResponse對象。

from urllib import request

url = "https://zhuanlan.zhihu.com/p/20751612"

html = request.urlopen(url)

print(type(html))

返回的狀態為200,即返回數據。

print(html.status)

返回的數據會是bytes的二進制格式,所以需要decode()一下,轉換成字符串格式。

print(html.read().decode("utf-8")

這就是GET方式的一個最基本的運用,對于POST方法的實現其實和GET差不多,只不過多了一個data參數。即若添加data參數,就是以POST請求方式進行,如果沒有data參數就是GET請求方式,請看下面一個POST案例。

這里通過使用http://httpbin.org/post網站演示(該網站可以作為練習如何使用urllib的一個站點使用,能夠模擬各種請求操作)完成了一次POST請求。

通過上面的介紹我相信你對urllib的基礎知識有了一個比較深刻的了解,但這遠遠不夠,需要我們在實踐中不斷豐富我們的知識庫,另外,urllib只是爬蟲一個最基礎的庫,務必掌握,其他一些高端的庫根據需要可以自行學會。

到目前為止我們還沒有進行爬一些張圖片或者視頻的實驗。下面我們看看如何來爬一些圖片。

03

爬蟲小實驗

在本節我將介紹如何對知乎上某個專欄的一些圖片進行爬蟲。

話不多說,直接上這個小實驗的代碼(寫在pachong.py文件中)如下:

from urllib import request

from bs4 import BeautifulSoup

import re

import time

url = "https://zhuanlan.zhihu.com/p/20751612"

html = request.urlopen(url).read().decode("utf-8")

soup = BeautifulSoup(html,"html.parser")

links = soup.find_all("img","origin_image zh-lightbox-thumb",src = re.compile(r'.jpg$'))

path = r"/home/tangxingwang/paichong_picture"

for link in links:

? ? print(link.attrs['src'])

? ? request.urlretrieve(link.attrs["src"],path+'\%s.jpg' % time.time())??

在本實例中,我們用Beautiful Soup結合正則表達式的方式來提取符合要求的鏈接,鏈接要求是在img標簽中,class=origin_image zh-lightbox-thumb,而且鏈接是.jpg結尾。

soup = BeautifulSoup(html,"html.parser")

links = soup.find_all("img","origin_image zh-lightbox-thumb",src = re.compile(r'.jpg$'))

提取出所有鏈接后,使用request.urlretrieve來將所有鏈接保存到本地

在終端執行上面程序代碼即可爬取圖片

python3? pachong.py

04

github爬蟲工程

接下來我們看看github上一些優秀的爬蟲工程。

4.1 github圖片爬蟲工程

在github上有許多優秀的圖片爬蟲項目,我們選擇一個對百度圖片爬蟲的工程詳細解釋下。下面是這個工程項目的github鏈接:

https://github.com/kong36088/BaiduImageSpider

我們將其clone下來后,有下圖所示的一些文件:

接下來我們打開index.py這個文件,按照自己的需求修改自己的下面這一行代碼

我把索引改成了科比,總數為1頁,然后運行下面代碼

python3 index.py

執行python3 index.py后你會發現有大量的圖片在下載,如下圖所示:

我們再看下文件的變化,你會現在的文件比我們之前clone下來的多了個科比文件夾,如下圖所示:

打開科比這個文件夾,你會發現有許多科比的照片。

關于對百度圖片爬蟲就講解到這,github上還有大量這樣的項目,如下:

1.該github工程是關于對知乎里面某個問題下所有的圖片進行爬蟲。下面是鏈接:

https://github.com/ladingwu/python_zhihu

2.該github工程是關于對微博某個用戶相冊里面所有的圖片進行爬蟲。下面是鏈接:

https://github.com/lincanbin/Sina-Weibo-Album-Downloader

3.該github工程是關于對花瓣里面旅游模塊圖片進行爬蟲,下面是鏈接

https://github.com/darrenfantasy/image_crawler/tree/master/Huaban

4.該github工程是關于對google image進行爬蟲。下面是鏈接:

https://github.com/Ehco1996/Python-crawler/tree/master/Google-Image

這就是github上一些關于圖片爬蟲的工程,當然github上關于圖片爬蟲的工程還有很多,有需要可以自己search再學習學習。

4.2 github視頻爬蟲工程

說完圖片的一些工程,我們再看看github上一些比較好的視頻工程。下面這個鏈接是關于對抖音視頻進行爬蟲的一個項目。鏈接如下:

https://github.com/loadchange/amemv-crawler

clone下來有如下文件

現在打開文件`share-url.txt`,把你想要下載的抖音號分享鏈接編輯進去,以逗號/空格/tab/表格鍵/回車符分隔都行,可以多行。

樣式如下:

然后在終端執行 下面代碼即可下載

python3 amemv-video-ripper.py

下載后的視頻保存在download文件件里面,里面有各個抖音號的小視頻

在github中關于視頻爬蟲的工程實際上還有很多,大家可以去上面看看!

最后附上一個github上關于學習爬蟲比較好的干貨。鏈接如下。

https://github.com/Ehco1996/Python-crawler

總結

AI領域必須掌握的數據爬蟲基礎就講到這里,這方面的知識還有很多,大家平時還需要多注意學習!

下期預告:下一期我們會講用可視化來理解你的數據,如果你有建議,歡迎留言,我們會及時采納的。

轉載文章請后臺聯系

侵權必究

更多請關注知乎專欄《有三AI學院》

往期白身境

  • 【AI白身境】只會用Python?g++,CMake和Makefile了解一下

  • 【AI白身境】搞計算機視覺必備的OpenCV入門基礎

  • 【AI白身境】深度學習必備圖像基礎

  • 【AI白身境】學AI必備的python基礎

  • 【AI白身境】Linux干活三板斧,shell、vim和git

  • 【AI白身境】深度學習從棄用windows開始

想要變身”AI專家“,就戳戳手指關注我們吧

別忘了點“好看”支持作者噢? ????

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【AI白身境】学深度学习你不得不知的爬虫基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。