网络爬虫的基础知识

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) # 打印提取的文本内容(未处理空值或异常情况)

相关推荐
却道天凉_好个秋3 小时前
卷积神经网络CNN(七):感受野
人工智能·python·深度学习·神经网络·感受野
penngo3 小时前
# 使用Claude Code开发植物大战僵尸游戏(pygame,附源码)
python·游戏·pygame
hhb_6184 小时前
Groovy语法进阶与工程实践指南
开发语言·python
hmywillstronger4 小时前
Rhino 中文字方向问题的解析与解决方案
python
AI技术增长4 小时前
Pytorch图像去噪实战(四):Attention UNet图像去噪实战,让模型重点恢复边缘和纹理区域
人工智能·pytorch·python
2401_833033624 小时前
如何修复固定定位头部容器中悬浮下拉菜单的错位问题
jvm·数据库·python
z4424753264 小时前
CSS Grid布局如何实现网格项目的自动增长_设置grid-auto-flow- row
jvm·数据库·python
GeLx4 小时前
从反爬角度:Playwright CDP 模式、Playwright 传统模式与 DrissionPage 的比较
python·程序人生·playwright·drissionpage·pyppeteer·浏览器自动化控制
m0_740352425 小时前
如何在 SvelteKit 中为动态加载的图片实现响应式悬停覆盖层
jvm·数据库·python
TechWayfarer5 小时前
IP归属地运营商能解决什么问题?风控/增长/数据平台落地实践(附API代码)
开发语言·网络·python·网络协议·tcp/ip