中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

什么是爬蟲-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),嘉興企業(yè)網(wǎng)站建設(shè),嘉興品牌網(wǎng)站建設(shè),網(wǎng)站定制,嘉興網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,嘉興網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

這篇文章主要介紹什么是爬蟲,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

如果學(xué)會了python的基本語法,我認(rèn)為入門爬蟲是很容易的。

什么是爬蟲

1:什么是爬蟲

爬蟲(spider,又網(wǎng)絡(luò)爬蟲),是指向網(wǎng)站/網(wǎng)絡(luò)發(fā)起請求,獲取資源后分析并提取有用數(shù)據(jù)的程序。

從技術(shù)層面來說就是 通過程序模擬瀏覽器請求站點的行為,把站點返回的HTML代碼/JSON數(shù)據(jù)/二進制數(shù)據(jù)(圖片、視頻) 爬到本地,進而提取自己需要的數(shù)據(jù),存放起來使用。

2: 爬蟲的基本思路

通過URL或者文件獲取網(wǎng)頁,

分析要爬取的目標(biāo)內(nèi)容所在的位置

用元素選擇器快速提?。≧aw)目標(biāo)內(nèi)容

處理提取出來的目標(biāo)內(nèi)容 ( 通常整理合成一個 Json)

存儲處理好的目標(biāo)內(nèi)容 (比如放到 MongoDB 之類的數(shù)據(jù)庫,或者寫進文件里。)

什么是爬蟲

robots協(xié)議:

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

爬蟲的用途:

1、12306搶票

2、短信轟炸

3、網(wǎng)絡(luò)投票

4、監(jiān)控數(shù)據(jù)

5、下載圖片、小說、視頻、音樂等

Http和Https:

發(fā)送請求,獲取響應(yīng)的過程其實就是發(fā)送Http或者Https請求和響應(yīng)的過程。

HTTP

超文本傳輸協(xié)議

默認(rèn)端口號:80

HTTPS

HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協(xié)議。

默認(rèn)端口號:443

作用:在傳輸過程中對數(shù)據(jù)進行加密,防止被竄改。

區(qū)別:http因不需要加密,所以性能更高,但安全性差。https安全性高,但是占用服務(wù)器資源。

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

Http請求報文:

什么是爬蟲

常見請求頭:

什么是爬蟲

Http狀態(tài)碼

什么是爬蟲

常見的 HTTP 狀態(tài)碼:

200 - 請求成功

301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它 URL

404 - 請求的資源(網(wǎng)頁等)不存在

500 - 內(nèi)部服務(wù)器錯誤

Chrome瀏覽器請求分析

什么是爬蟲

分析流程圖:

什么是爬蟲

以上都是爬蟲的預(yù)備知識,掌握了之后就可以寫代碼去爬取我們想要爬的網(wǎng)站了。Python提供了許多網(wǎng)絡(luò)請求的庫,比如Requests、urllib等,這里只說一下requests庫。

Requests庫

安裝:

pip(3) install requests

基本使用:

# 導(dǎo)入模塊
import requests
# 定義請求地址
url = 'http://www.baidu.com'
# 發(fā)送 GET 請求獲取響應(yīng)
response = requests.get(url)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

response常用屬性:

response.text 返回響應(yīng)內(nèi)容,響應(yīng)內(nèi)容為 str 類型

respones.content 返回響應(yīng)內(nèi)容,響應(yīng)內(nèi)容為 bytes 類型

response.status_code 返回響應(yīng)狀態(tài)碼

response.request.headers 返回請求頭

response.headers 返回響應(yīng)頭

response.cookies 返回響應(yīng)的 RequestsCookieJar 對象

# 獲取字節(jié)數(shù)據(jù)
content = response.content
# 轉(zhuǎn)換成字符串類型
html = content.decode('utf-8')

自定義請求頭

# 導(dǎo)入模塊
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"
}
# 發(fā)送自定義請求頭
response = requests.get(url,headers=headers)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

發(fā)送Get請求

# 導(dǎo)入模塊
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 請求參數(shù)
params = {
"kw":"hello"
}
# 使用 GET 請求參數(shù)發(fā)送請求
response = requests.get(url,headers=headers,params=params)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

發(fā)送POST請求

# 導(dǎo)入模塊
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請求參數(shù)
data = {
"kw":"hello"
}
# 使用 POST 請求參數(shù)發(fā)送請求
response = requests.post(url,headers=headers,data=data)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

使用代理

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

什么是爬蟲

使用方法

# 導(dǎo)入模塊
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"
}
# 定義 代理服務(wù)器
proxies = {
"http":"http://IP地址:端口號",
"https":"https://IP地址:端口號"
}
# 使用 POST 請求參數(shù)發(fā)送請求
response = requests.get(url,headers=headers,proxies=proxies)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

請求中攜帶cookie

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

方式:

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

通過請求參數(shù)攜帶cookie

# 導(dǎo)入模塊
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內(nèi)容
"Cookie": "Cookie值"
}
# 方式二:定義 cookies 值
cookies = {
"xx":"yy"
}
# 使用 POST 請求參數(shù)發(fā)送請求
response = requests.get(url,headers=headers,cookies=cookies)
# 獲取響應(yīng)的 html 內(nèi)容
html = response.text

數(shù)據(jù)提取

作用:從爬蟲獲取的數(shù)據(jù)中提取出我們想要的數(shù)據(jù)。

方式:

json模塊提取

xpath提取

正則提取

beautifulsoup

json

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

json.loads json字符串 轉(zhuǎn) Python數(shù)據(jù)類型

json.dumps Python數(shù)據(jù)類型 轉(zhuǎn) json字符串

json.load json文件 轉(zhuǎn) Python數(shù)據(jù)類型

json.dump Python數(shù)據(jù)類型 轉(zhuǎn) json文件

ensure_ascii=False 實現(xiàn)讓中文寫入的時候保持為中文

indent=空格數(shù) 通過空格的數(shù)量進行縮緊

xpath

XPath 全稱: XML Path Language,是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。

安裝:

pip(3) install lxml

常用規(guī)則

正則

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

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

常見語法

什么是爬蟲

什么是爬蟲

什么是爬蟲

以上是什么是爬蟲的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

名稱欄目:什么是爬蟲-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.rwnh.cn/article0/cehdoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、營銷型網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)
丁青县| 绥阳县| 花莲市| 嵩明县| 宣汉县| 文水县| 明光市| 临江市| 咸宁市| 尼勒克县| 庆元县| 喀什市| 黄石市| 迁西县| 游戏| 义马市| 垣曲县| 高阳县| 疏附县| 达州市| 蒙山县| 中超| 赤壁市| 融水| 宁明县| 盖州市| 连南| 康乐县| 青阳县| 长沙县| 岳阳市| 凉山| 徐闻县| 若尔盖县| 关岭| 房山区| 行唐县| 双辽市| 拜泉县| 常德市| 宜兰市|