Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

如果學會了python的基本語法,我認為入門爬蟲是很容易的。

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

1:什麼是爬蟲

爬蟲(spider,又網絡爬蟲),是指向網站/網絡發起請求,獲取資源後分析並提取有用數據的程序。

從技術層面來說就是 通過程序模擬瀏覽器請求站點的行為.

把站點返回的HTML代碼/JSON數據/二進制數據(圖片、視頻) 爬到本地,進而提取自己需要的數據,存放起來使用。

2:入門爬蟲的乾貨

2.1: 爬蟲的基本思路

通過URL或者文件獲取網頁, 分析要爬取的目標內容所在的位置 用元素選擇器快速提取(Raw)

目標內容 處理提取出來的目標內容 ( 通常整理合成一個 Json)

存儲處理好的目標內容 (比如放到 MongoDB 之類的數據庫,或者寫進文件裡。)

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

robots協議:

網站通過 Robots 協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是道德層面上的約束

爬蟲的用途:

1、12306搶票 2、短信轟炸 3、網絡投票 4、監控數據 5、下載圖片、小說、視頻、音樂等

Http和Https: 發送請求,獲取響應的過程其實就是發送Http或者Https請求和響應的過程。 HTTP

超文本傳輸協議

默認端口號:80

HTTPS

HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協議 默認端口號:443

作用:在傳輸過程中對數據進行加密,防止被竄改

區別:http因不需要加密,所以性能更高,但安全性差。

https安全性高,但是佔用服務器資源

但是Https是未來的主流,比如小程序、ios、android客戶端的接口都需要Https接口支持.

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

常見請求頭:

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Http狀態碼.

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

常見的 HTTP 狀態碼:

200 - 請求成功 301 - 資源(網頁等)

被永久轉移到其它 URL 404 - 請求的資源(網頁等)

不存在 500 - 內部服務器錯誤 Chrome瀏覽器請求分析

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

分析流程圖:

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

以上都是爬蟲的預備知識,掌握了之後就可以寫代碼去爬取我們想要爬的網站了。

Python提供了許多網絡請求的庫,比如Requests、urllib等,這裡只說一下requests庫

Requests庫.

安裝:pip(3) install requests

基本使用:

<code># 導入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com'
# 發送 GET 請求獲取響應
response = requests.get(url)
# 獲取響應的 html 內容
html = response.text/<code>

response常用屬性:

<code>response.text 返回響應內容,響應內容為 str 類型
respones.content 返回響應內容,響應內容為 bytes 類型
response.status_code 返回響應狀態碼
response.request.headers 返回請求頭
response.headers 返回響應頭
response.cookies 返回響應的 RequestsCookieJar 對象
# 獲取字節數據
content = response.content
# 轉換成字符串類型
html = content.decode('utf-8')/<code>

自定義請求頭.

<code># 導入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com'
# 定義自定義請求頭
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
# 發送自定義請求頭
response = requests.get(url,headers=headers)
# 獲取響應的 html 內容
html = response.text/<code>

發送Get請求.

<code># 導入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com/s'
# 定義自定義請求頭
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
# 定義 GET 請求參數
params = {
"kw":"hello"
}
# 使用 GET 請求參數發送請求
response = requests.get(url,headers=headers,params=params)
# 獲取響應的 html 內容
html = response.text/<code>

發送POST請求.

<code># 導入模塊
import requests

# 定義請求地址
url = 'http://www.baidu.com'
# 定義自定義請求頭
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
# 定義post請求參數
data = {
"kw":"hello"
}
# 使用 POST 請求參數發送請求
response = requests.post(url,headers=headers,data=data)
# 獲取響應的 html 內容
html = response.text/<code>

使用代理.

為什麼使用代理:1、讓服務器以為請求是從多個客戶端發出的。2、防止暴露我們的真實地址

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

使用方法.

<code># 導入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com'
# 定義自定義請求頭
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
}
# 定義 代理服務器
proxies = {
"http":"http://IP地址:端口號",
"https":"https://IP地址:端口號"
}
# 使用 POST 請求參數發送請求
response = requests.get(url,headers=headers,proxies=proxies)
# 獲取響應的 html 內容
html = response.text/<code>

請求中攜帶cookie

作用:有些網站需要登錄,這時候cookie就是記錄了你的用戶信息

方式:

直接在自定義請求頭中攜帶

通過請求參數攜帶cookie

<code># 導入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com'
# 定義自定義請求頭
headers = {
"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
# 方式一:直接在請求頭中攜帶Cookie內容
"Cookie": "Cookie值"
}
# 方式二:定義 cookies 值
cookies = {
"xx":"yy"
}
# 使用 POST 請求參數發送請求
response = requests.get(url,headers=headers,cookies=cookies)
# 獲取響應的 html 內容
html = response.text/<code>

數據提取

作用:從爬蟲獲取的數據中提取出我們想要的數據

方式:

json模塊提取 xpath提取 正則提取 beautifulsoup

json.

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式

json.loads json字符串 轉 Python數據類型

json.dumps Python數據類型 轉 json字符串

json.load json文件 轉 Python數據類型

json.dump Python數據類型 轉 json文件

ensure_ascii=False 實現讓中文寫入的時候保持為中文

indent=空格數 通過空格的數量進行縮緊

xpath.

XPath 全稱: XML Path Language,是一門在 XML 文檔中查找信息的語言。

XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。

安裝:pip(3) install lxml

常用規則.

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

正則.

Python中通過正則表達對字符串進行匹配是,可以使用re模塊:

<code># 導入re模塊
import re
# 使用match方法進行匹配操作
result = re.match(正則表達式,要匹配的字符串)
# 如果上一步匹配到數據的話,可以使用group方法來提取數據
result.group()/<code>

常見語法:

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

最後小編幫助大家整理了一套python教程,下面展示了部分,希望也能幫助對編程感興趣,想做數據分析,人工智能、爬蟲或者希望從事編程開發的小夥伴,畢竟python工資也還可以,如果能幫到你請點贊、點贊、點贊。

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

Python爬蟲入門,5分鐘瞭解思路,這是我見過最簡單的基礎教學

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值.

如果你喜歡python,並覺得這篇文章對你有益的話,麻煩多多點贊關注支持!!!!


分享到:


相關文章: