爬蟲學習筆記(一)

目的

通過編寫程序爬取互聯網上的優質資源

爬蟲必須要使用python嗎

非也~

編程語言知識工具,抓取到數據才是目的,而大多數爬蟲采用python語言編寫的原因是python的語法比較簡單,python寫爬蟲比較簡單!好用!而且python有很多第三方支持的庫。很多繁瑣復雜的工作直接交給這些第三方庫就可以,自己不需要做這些額外的準備工作只需要導入庫就好

爬蟲合法嗎

爬蟲在法律上不禁止,但是有違反的風險(類比菜刀,法律上允許菜刀的存在,但是有人會使用菜刀做一些非法的事)

爬蟲分為善意的和惡意的,如下圖所示

反爬機制

門戶網站,可以通過制定相應的策略或者技術手段,防止爬蟲程序進行網站數據的爬取,如加密機制

反反爬機制

爬蟲程序通過制定相關的策略或者技術手段,破解門戶網站的反爬機制,獲取門戶網站的相關數據

robots.txt協議

君子協議(防君子不防小人),規定了網站中哪些數據可以被爬蟲爬取,哪些數據不可以被爬取,所有網站的君子協議所在地都是,網站名后加子目錄/robots.txt,如下面的百度的君子協議

網址:https://www.baidu.com/robots.txt

第一個爬蟲程序

使用工具:pycharm

爬取百度頁面的資源

代碼:

from urllib.request import urlopen
url = "https://www.baidu.com"
response = urlopen(url)#打開網址會返回響應的數據
#response.read()讀取響應回的數據中的內容(內容是字節的形式,所以要解碼成文字)
with open("myBaidu.html", mode="w",encoding="utf-8") as f:#寫入模式f.write(response.read().decode("utf-8"))

保存文件中的內容:

?點擊谷歌瀏覽器,對爬取到的html頁面進行打開

結果如下圖,和真正的百度頁面完全相同

為什么拿到的是html代碼,瀏覽器頁面顯示卻不是?

其實瀏覽器拿到的也是html代碼,只是瀏覽器會把html代碼(源代碼)運行成正常的頁面動畫及數據,因此爬蟲讀取到的實際上是網頁的源代碼

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903530.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大廠面試:MySQL篇

前言 本章內容來自B站黑馬程序員java大廠面試題和小林coding 博主學習筆記,如果有不對的地方,海涵。 如果這篇文章對你有幫助,可以點點關注,點點贊,謝謝你! 1.MySQL優化 1.1 定位慢查詢 定位 一個SQL…

C++_數據結構_詳解紅黑樹

?? 歡迎大家來到小傘的大講堂?? 🎈🎈養成好習慣,先贊后看哦~🎈🎈 所屬專欄:C學習 小傘的主頁:xiaosan_blog 制作不易!點個贊吧!!謝謝喵!&…

DNA復制過程3D動畫教學工具

DNA復制過程3D動畫教學工具 訪問工具頁面: DNA復制動畫演示 工具介紹 我開發了一個交互式的DNA復制過程3D動畫演示工具,用于分子生物學教學。這個工具直觀展示了: DNA雙螺旋結構的解旋過程堿基互補配對原理半保留復制機制完整的復制周期動畫 主要特點…

使用阿里云 CDN 保護網站真實 IP:完整配置指南

使用阿里云 CDN 保護網站真實 IP:完整配置指南 一、寶塔面板準備工作1. 確認網站部署狀態2. 寶塔中檢查網站配置 二、配置阿里云 CDN1. 添加域名到 CDN2. 配置 DNS 解析3. 配置成功確認 三、寶塔面板安全加固(隱藏 IP 的關鍵步驟)1. 禁止通過…

PHP經驗筆記

isset — 檢測變量是否設置,并且不是NULL; 若變量存在且值不為NULL,則返回 TURE 若變量存在且其值為NULL或變量不存在,則返回 FALSE 結論 1. 當變量為空字符串、數值0和布爾值false時,isset全部返回true 2. 當變量不存在和變量存在且值為NULL…

Linux——安裝NVM

1. 安裝命令 官方地址:https://github.com/nvm-sh/nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash2. 安裝完成后執行命令 source ~/.bashrc3. 驗證 nvm -v

CentOS 7 磁盤陣列搭建與管理全攻略

CentOS 7 磁盤陣列搭建與管理全攻略 在數據存儲需求日益增長的今天,磁盤陣列(RAID)憑借其卓越的性能、數據安全性和可靠性,成為企業級服務器和數據中心的核心存儲解決方案。CentOS 7 作為一款穩定且功能強大的 Linux 操作系統&am…

C++每日訓練 Day 18:構建響應式表單與數據驗證(初學者友好)

📘 本篇目標:在前幾日協程與事件驅動機制基礎上,構建一個響應式表單系統,實現用戶輸入的異步驗證與反饋。通過協程掛起/恢復機制,簡化異步邏輯,提升代碼可讀性。 🔁 回顧 Day 17:響應…

Vue初步總結-摘自 黑馬程序員

本文摘自 bilibili 前端最新Vue2Vue3基礎入門到實戰項目全套教程,自學前端vue就選黑馬程序員,一套全通關! 更多詳情可參考: https://www.yuque.com/u26161316/pic6n4/heyv8nv8ubfk3fhe?singleDoc# 《Vue》

【基于Qt的QQ音樂播放器開發實戰:從0到1打造全功能音樂播放應用】

🌹 作者: 云小逸 🤟 個人主頁: 云小逸的主頁 🤟 motto: 要敢于一個人默默的面對自己,強大自己才是核心。不要等到什么都沒有了,才下定決心去做。種一顆樹,最好的時間是十年前,其次就是現在&…

線程池(二):深入剖析synchronized關鍵字的底層原理

線程池(二):深入剖析synchronized關鍵字的底層原理 線程池(二):深入剖析synchronized關鍵字的底層原理一、基本使用1.1 修飾實例方法1.2 修飾靜態方法1.3 修飾代碼塊 二、Monitor2.1 Monitor的概念2.2 Moni…

Linux CentOS 7 安裝Apache 部署html頁面

*、使用yum包管理器安裝Apache。運行以下命令: sudo yum install httpd *、啟動Apache服務 sudo systemctl start httpd *、設置Apache服務開機自啟 # 啟用開機自啟動 sudo systemctl enable httpd# 禁用開機自啟動 sudo systemctl disable httpd *、驗證Apac…

前端設置三行文本省略號,失效為什么?

實際效果:第三行出現省略號,但是第四行依舊顯示了部分文字 這個問題通常是由于 CSS 多行文本截斷(-webkit-line-clamp)的計算方式或布局沖突導致的。以下是完整解決方案,確保三行文本截斷正確顯示省略號,并…

git學習之git常用命令

1. 初始化倉庫 git init初始化一個新的 Git 倉庫。 2. 克隆遠程倉庫 git clone <repository-url>從遠程服務器克隆一個已有倉庫到本地。 3. 配置用戶名和郵箱 git config --global user.name "Your Name" git config --global user.email "youexampl…

【Spring Boot】深入解析:#{} 和 ${}

1.#{} 和 ${}的使用 1.1數據準備 1.1.1.MySQL數據準備 &#xff08;1&#xff09;創建數據庫&#xff1a; CREATE DATABASE mybatis_study DEFAULT CHARACTER SET utf8mb4;&#xff08;2&#xff09;使用數據庫 -- 使?數據數據 USE mybatis_study;&#xff08;3&#xff…

Poco C++全面開發指南:日期和時間

時間戳 時間戳是指格林威治時間1970年01月01日00時00分00秒&#xff08;北京時間1970年01月01日08時00分00秒&#xff09;起至現在的總秒數。在poco中可以可以使用Timestamp類獲取。 #include <Poco/Timestamp.h> #include <iostream>int main() {Poco::Timestam…

水利三維可視化平臺怎么做?快速上手的3步指南

分享大綱&#xff1a; 1、了解水利三維可視化平臺 2、選擇合適的開發平臺 3、快速搭建水利三維可視化平臺 第一步&#xff1a;了解水利三維可視化平臺 水利三維可視化平臺是利用大數據、物聯網、數字孿生等技術&#xff0c;將物理實體數字化建模&#xff0c;并通過三維可視化技…

高級前端面試題:基于2025年最新技術體系

高級前端面試題:基于2025年最新技術體系 引言 隨著前端技術的不斷發展,2025年的前端面試題也呈現出新的特點和趨勢。本報告基于最新的前端技術體系,收集了當前熱門的面試題,旨在幫助準備高級前端工程師面試的候選人全面了解面試考察點。報告內容涵蓋HTML5 Canvas、WebGL、…

圖像處理——邊緣檢測

1 概述 邊緣檢測是圖像處理和計算機視覺中的一項基本技術&#xff0c;用于識別圖像中亮度變化劇烈的像素點&#xff0c;這些像素點通常對應于物體的邊界。它通過檢測圖像中亮度或顏色變化顯著的區域&#xff0c;提取出物體的輪廓&#xff0c;常用于計算機視覺、圖像處理和模式識…

c語言的常用的預處理指令和條件編譯

c語言的常用的預處理指令和條件編譯 預處理詳解預定義符號#define#define 定義標識符#define 定義宏帶副作用的宏參數宏和函數的對比#define命名約定和#undef移除宏 # 和 ## 參數插入字符串字符串的自動連接#宏參數 命令行定義條件編譯#if和#endif多分支條件編譯#if、#elif、#e…