电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python 爬蟲的原理

瀏覽:3日期:2022-07-15 18:21:07

爬蟲就是請求網(wǎng)站并提取數(shù)據(jù)的自動化程序。其中請求,提取,自動化是爬蟲的關(guān)鍵!下面我們分析爬蟲的基本流程

爬蟲的基本流程

發(fā)起請求

通過HTTP庫向目標(biāo)站點(diǎn)發(fā)起請求,也就是發(fā)送一個Request,請求可以包含額外的header等信息,等待服務(wù)器響應(yīng)

獲取響應(yīng)內(nèi)容

如果服務(wù)器能正常響應(yīng),會得到一個Response,Response的內(nèi)容便是所要獲取的頁面內(nèi)容,類型可能是HTML,Json字符串,二進(jìn)制數(shù)據(jù)(圖片或者視頻)等類型

解析內(nèi)容

得到的內(nèi)容可能是HTML,可以用正則表達(dá)式,頁面解析庫進(jìn)行解析,可能是Json,可以直接轉(zhuǎn)換為Json對象解析,可能是二進(jìn)制數(shù)據(jù),可以做保存或者進(jìn)一步的處理

保存數(shù)據(jù)

保存形式多樣,可以存為文本,也可以保存到數(shù)據(jù)庫,或者保存特定格式的文件

什么是Request,Response

瀏覽器發(fā)送消息給網(wǎng)址所在的服務(wù)器,這個過程就叫做HTPP Request

服務(wù)器收到瀏覽器發(fā)送的消息后,能夠根據(jù)瀏覽器發(fā)送消息的內(nèi)容,做相應(yīng)的處理,然后把消息回傳給瀏覽器,這個過程就是HTTP Response

瀏覽器收到服務(wù)器的Response信息后,會對信息進(jìn)行相應(yīng)的處理,然后展示

Request中包含什么?請求方式

主要有:GET/POST兩種類型常用,另外還有HEAD/PUT/DELETE/OPTIONSGET和POST的區(qū)別就是:請求的數(shù)據(jù)GET是在url中,POST則是存放在頭部

GET:向指定的資源發(fā)出“顯示”請求。使用GET方法應(yīng)該只用在讀取數(shù)據(jù),而不應(yīng)當(dāng)被用于產(chǎn)生“副作用”的操作中,例如在Web Application中。其中一個原因是GET可能會被網(wǎng)絡(luò)蜘蛛等隨意訪問

POST:向指定資源提交數(shù)據(jù),請求服務(wù)器進(jìn)行處理(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求本文中。這個請求可能會創(chuàng)建新的資源或修改現(xiàn)有資源,或二者皆有。

HEAD:與GET方法一樣,都是向服務(wù)器發(fā)出指定資源的請求。只不過服務(wù)器將不傳回資源的本文部分。它的好處在于,使用這個方法可以在不必傳輸全部內(nèi)容的情況下,就可以獲取其中“關(guān)于該資源的信息”(元信息或稱元數(shù)據(jù))。

PUT:向指定資源位置上傳其最新內(nèi)容。

OPTIONS:這個方法可使服務(wù)器傳回該資源所支持的所有HTTP請求方法。用’*’來代替資源名稱,向Web服務(wù)器發(fā)送OPTIONS請求,可以測試服務(wù)器功能是否正常運(yùn)作。

DELETE:請求服務(wù)器刪除Request-URI所標(biāo)識的資源。

請求URL

URL,即統(tǒng)一資源定位符,也就是我們說的網(wǎng)址,統(tǒng)一資源定位符是對可以從互聯(lián)網(wǎng)上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯(lián)網(wǎng)上標(biāo)準(zhǔn)資源的地址?;ヂ?lián)網(wǎng)上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應(yīng)該怎么處理它。

URL的格式由三個部分組成:

第一部分是協(xié)議(或稱為服務(wù)方式)。 第二部分是存有該資源的主機(jī)IP地址(有時也包括端口號)。 第三部分是主機(jī)資源的具體地址,如目錄和文件名等。

爬蟲爬取數(shù)據(jù)時必須要有一個目標(biāo)的URL才可以獲取數(shù)據(jù),因此,它是爬蟲獲取數(shù)據(jù)的基本依據(jù)。

請求頭

包含請求時的頭部信息,如User-Agent,Host,Cookies等信息,下圖是請求請求百度時,所有的請求頭部信息參數(shù)

Python 爬蟲的原理

請求體

請求是攜帶的數(shù)據(jù),如提交表單數(shù)據(jù)時候的表單數(shù)據(jù)(POST)

Response中包含了什么

所有HTTP響應(yīng)的第一行都是狀態(tài)行,依次是當(dāng)前HTTP版本號,3位數(shù)字組成的狀態(tài)代碼,以及描述狀態(tài)的短語,彼此由空格分隔。

響應(yīng)狀態(tài)

有多種響應(yīng)狀態(tài),如:200代表成功,301跳轉(zhuǎn),404找不到頁面,502服務(wù)器錯誤

1xx消息——請求已被服務(wù)器接收,繼續(xù)處理 2xx成功——請求已成功被服務(wù)器接收、理解、并接受 3xx重定向——需要后續(xù)操作才能完成這一請求 4xx請求錯誤——請求含有詞法錯誤或者無法被執(zhí)行 5xx服務(wù)器錯誤——服務(wù)器在處理某個正確請求時發(fā)生錯誤 常見代碼: 200 OK 請求成功 400 Bad Request 客戶端請求有語法錯誤,不能被服務(wù)器所理解 401 Unauthorized 請求未經(jīng)授權(quán),這個狀態(tài)代碼必須和WWW-Authenticate報(bào)頭域一起使用 403 Forbidden 服務(wù)器收到請求,但是拒絕提供服務(wù) 404 Not Found 請求資源不存在,eg:輸入了錯誤的URL 500 Internal Server Error 服務(wù)器發(fā)生不可預(yù)期的錯誤 503 Server Unavailable 服務(wù)器當(dāng)前不能處理客戶端的請求,一段時間后可能恢復(fù)正常 301 目標(biāo)永久性轉(zhuǎn)移 302 目標(biāo)暫時性轉(zhuǎn)移

響應(yīng)頭

如內(nèi)容類型,類型的長度,服務(wù)器信息,設(shè)置Cookie,如下圖

Python 爬蟲的原理

響應(yīng)體

最主要的部分,包含請求資源的內(nèi)容,如網(wǎng)頁HTMl,圖片,二進(jìn)制數(shù)據(jù)等

能爬取什么樣的數(shù)據(jù)

網(wǎng)頁文本:如HTML文檔,Json格式化文本等圖片:獲取到的是二進(jìn)制文件,保存為圖片格式視頻:同樣是二進(jìn)制文件其他:只要請求到的,都可以獲取

如何解析數(shù)據(jù)

直接處理 Json解析 正則表達(dá)式處理 BeautifulSoup解析處理 PyQuery解析處理 XPath解析處理

關(guān)于抓取的頁面數(shù)據(jù)和瀏覽器里看到的不一樣的問題

出現(xiàn)這種情況是因?yàn)?,很多網(wǎng)站中的數(shù)據(jù)都是通過js,ajax動態(tài)加載的,所以直接通過get請求獲取的頁面和瀏覽器顯示的不同。

如何解決js渲染的問題?

分析ajax Selenium/webdriver Splash PyV8,Ghost.py

怎樣保存數(shù)據(jù)

文本:純文本,Json,Xml等

關(guān)系型數(shù)據(jù)庫:如mysql,oracle,sql server等結(jié)構(gòu)化數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫:MongoDB,Redis等key-value形式存儲

以上就是Python 爬蟲的原理的詳細(xì)內(nèi)容,更多關(guān)于Python爬蟲的原理的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 打包钢带,铁皮打包带,烤蓝打包带-高密市金和金属制品厂 | 上海logo设计| 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 儿童乐园|游乐场|淘气堡招商加盟|室内儿童游乐园配套设备|生产厂家|开心哈乐儿童乐园 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 刹车盘机床-刹车盘生产线-龙口亨嘉智能装备 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | TPU薄膜_TPU薄膜生产厂家_TPU热熔胶膜厂家定制_鑫亘环保科技(深圳)有限公司 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网| CE认证_FCC认证_CCC认证_MFI认证_UN38.3认证-微测检测 CNAS实验室 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 正压密封性测试仪-静态发色仪-导丝头柔软性测试仪-济南恒品机电技术有限公司 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 临海涌泉蜜桔官网|涌泉蜜桔微商批发代理|涌泉蜜桔供应链|涌泉蜜桔一件代发 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 |