网络爬虫的基础知识

1.什么是网络爬虫

网络爬虫的英文名字是web crawler,是用于抓取网络信息的程序的简称,如果把互联网比作一张大网,把蜘蛛网的节点比做一个网页,那么爬虫就是在网页上爬行的一只蜘蛛,每爬到一个节点就能访问该网页的信息,所以又被称为网络蜘蛛(web spider)。

2.为什么网络爬虫可以抓取数据?

因为在日常访问的网页都是通过解析源代码的方式呈现出网页画面的,网络爬虫可以获取浏览器解析之前的源代码。在浏览器中按F12可以进入过滤器查看网页源代码,爬取资源前可查看网站的爬虫协议,如B站可在网址后加/robots.txt。

3.URL:URL(Uniform Resource Locator)是网页的链接,即统一资源定位符,指定了我们要查找资源的地址,规律为http+:+//+域名+/由这种格式构成,有时会用https提高安全性。

4.域名:在URL中间,由点分隔的字符组成的互联网标识被称为域名。

如:www.baidu.com,其中.com或.cn这种又被叫做顶级域名,baidu是二级域名,www为三级域名。

5.web服务器:用于提供网页信息给浏览器的服务器,这台服务器就被称为web服务器

6.HTTP协议:又被称为超文本传输协议,是互联网数据传输的一种规则,它规定了数据的传输方式。HTTP协议在进行数据传输时数据是未加密的,传输内容可能会被窃听,因此现在多使用HTTPS超文本传输安全协议。

7.消息请求和响应:1、当我们想要浏览网页时,浏览器会先发送HTTP请求,告诉web服务器需要的数据。2、web服务器收到请求后,按照请求执行,并返回HTTP响应消息。3、浏览器收到返回的数据后,会将源代码解析成网页展示出来。

8.状态码:状态码由3位数字组成,主要用于告知客户端的HTTP请求的执行结果。

如状态码200代表执行成功,状态码404表示无法找到请求的资源,状态码503表示服务器繁忙或者正在维护。

9.HTML:超文本标记语言,用于编辑网页的语言,记事本后缀改成.html可以自己创建html文件。

10.爬虫基础python代码

import requests # 导入requests库,用于发送HTTP请求

from bs4 import BeautifulSoup # 导入BeautifulSoup库,用于解析HTML/XML网页内容

url = "https://www.baidu.com/" # 定义目标网页的URL地址

response = requests.get(url) #发送GET请求获取网页内容(未设请求头可能触发反爬机制)

html = response.text # 将响应内容转换为字符串格式的HTML网页源码

soup = BeautifulSoup(html, "lxml") # 使用BeautifulSoup解析HTML

content_all = soup.find_all(name="em") # 查找所有<em>标签

for content in content_all: # 遍历所有找到的<em>标签元素

contentString = content.string # 提取标签的文本内容,含子元素用get_text()更安全

print(contentString) # 打印提取的文本内容(未处理空值或异常情况)

相关推荐
404.Not Found7 分钟前
Day46 Python打卡训练营
开发语言·python
love530love8 分钟前
【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )
开发语言·ide·windows·笔记·python·pycharm
运维开发王义杰16 分钟前
Python: 告别 ModuleNotFoundError, 解决 pipx 环境下 sshuttle 缺少 pydivert 依赖的终极指南
开发语言·python
DanCheng-studio43 分钟前
毕设 基于机器视觉的驾驶疲劳检测系统(源码+论文)
python·毕业设计·毕设
carpell1 小时前
【语义分割专栏】3:Segnet实战篇(附上完整可运行的代码pytorch)
人工智能·python·深度学习·计算机视觉·语义分割
一只小波波呀2 小时前
打卡第48天
python
zstar-_2 小时前
一套个人知识储备库构建方案
python
Amo Xiang2 小时前
《100天精通Python——基础篇 2025 第5天:巩固核心知识,选择题实战演练基础语法》
python·选择题·基础语法
江梦寻2 小时前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式
霖檬ing2 小时前
Python——MySQL远程控制
开发语言·python·mysql