如何自己编写以及看到他人HTML页面的数据
自己编写
记住基本有啥类型和它的作用,使用vscode编写时会有智能提示,不用记住全部细节。然后再HTML文件里自己写就行了。
查看别人HTML的内容
浏览器的页面是本地的还是服务器发来的
无论是否成功,浏览器最终会展示一个HTML页面
浏览器无法找到网站时
成功对应服务器就会返回HTML页面了,这个不用将。重点是失败时候的HTML是谁发的?
1. 浏览器自带的错误页面
如果浏览器无法连接到目标服务器,或者服务器没有返回任何响应,浏览器通常会显示一个默认的错误页面。这些页面是由浏览器自身提供的,常见的错误代码包括:
404 Not Found
:浏览器成功连接到服务器,但服务器找不到请求的资源。502 Bad Gateway
:浏览器成功连接到服务器,但服务器无法从上游服务器获取有效的响应。503 Service Unavailable
:服务器暂时无法处理请求,可能是因为服务器维护或过载。504 Gateway Timeout
:服务器作为网关或代理,未能及时从上游服务器获取请求的响应。408 Request Timeout
:服务器等待请求超时。400 Bad Request
:服务器无法理解请求的格式。
这些错误页面通常由浏览器预先定义,显示在浏览器窗口中,提示用户发生了什么问题。
2. 服务器返回的自定义错误页面
有些服务器会配置自定义的错误页面。当服务器检测到某些错误(如404、500等)时,会返回一个自定义的HTML页面,而不是默认的错误信息。这些页面是由服务器端生成并发送给浏览器的。例如:
如果服务器找不到请求的页面,可能会返回一个自定义的404页面,提供一些额外的导航链接或搜索功能。
如果服务器遇到内部错误,可能会返回一个自定义的500页面,提示用户稍后再试。
3. 网络提供商(ISP)的拦截页面
在某些情况下,网络服务提供商(ISP)可能会拦截某些请求,并返回自己的HTML页面。例如:
访问被禁止的网站:ISP可能会返回一个页面,提示用户该网站被禁止访问。
网络故障:ISP可能会返回一个页面,提示用户网络连接存在问题。
这些页面是由ISP的网络管理系统生成并发送给浏览器的。
4. 本地网络设备的拦截页面
如果用户处于一个受管理的网络环境中(如公司网络、学校网络等),本地网络设备(如路由器、防火墙等)可能会拦截某些请求,并返回自己的HTML页面。例如:
访问受限网站:本地网络设备可能会返回一个页面,提示用户该网站被限制访问。
网络认证页面:用户可能需要先通过网络认证(如登录Wi-Fi热点),才能访问外部网站。
这些页面是由本地网络设备生成并发送给浏览器的。
总结
当浏览器无法找到网站时,返回的HTML界面可能来自以下来源:
- 浏览器自带的错误页面:由浏览器自身提供,显示默认的错误信息。
- 服务器返回的自定义错误页面:由服务器端生成并发送,提供更友好的错误提示或额外功能。
- 网络提供商(ISP)的拦截页面:由ISP生成并发送,提示用户网络限制或故障。
- 本地网络设备的拦截页面:由本地网络设备生成并发送,提示用户网络限制或需要认证。
- 当出现 DNS_PROBE_FINISHED_NXDOMAIN 错误时,返回的HTML界面并不是由DNS服务器直接发送的。DNS服务器的作用是将域名解析为IP地址,而不会直接返回HTML页面。
一些404界面![]()
查看这个页面
浏览器是开发前端的工具,所以是时候重新认识一下它了😏
开发者模式:
- CTRL + shift + I 打开
- F12
打不开的原因
网页禁用了开发者模式,但只是快捷键不能用,点击右上角浏览器设置依旧可以打开(举例网站:https://minghuaji.dpm.org.cn/paint/detail?id=b0a15b3767a5c12089ec45563741112b)
开发者工具的引入
开发者工具和vscode的区别
简言之,vscode用来编辑,而开发者工具用于实时调试(因为能看到网页与代码的实际关系且更多的功能(如性能分析)
如何用爬虫爬取这些内容?爬取这些有价值吗
本质上,PC得到这些信息都离不开计算机网络(所以要熟悉这些知识),在成功与服务器建立了连接后,Pc就可以和服务器间发送HTTP包了,当然,经过HTTP包六层模型封装通过信道传输。
为啥要爬虫
在一些需要大量数据的场合下,人工访问效率低下,但爬虫就不一样,可以实现自动化的根据规则快速爬取大量数据
常用爬虫语言————python
使用爬虫爬取网页的 和 数据是一种常见的需求,尤其是在数据抓取、内容分析或自动化测试中。以下是使用 Python 和一些流行的库(如 requests 和 BeautifulSoup)来实现这一功能的步骤。
注意: 爬取前先把环境安装好(安装python解释器、相关库),它不是电脑自带的
如何使用爬虫爬取网页 <head>
和 <body>
数据
爬取网页 <head>
和 <body>
数据
使用
requests
和BeautifulSoup
:requests
:用于发送HTTP请求,获取网页的HTML内容。BeautifulSoup
:用于解析HTML内容,提取<head>
和<body>
标签。- 优点:简单、高效,适合爬取静态网页。
- 示例代码:
import requests from bs4 import BeautifulSoup def fetch_head_and_body(url): response = requests.get(url) response.raise_for_status() soup = BeautifulSoup(response.text, 'html.parser') head = soup.find('head') body = soup.find('body') return head, body
使用
Selenium
:Selenium
:用于模拟浏览器行为,适合爬取动态加载的内容。- 优点:可以处理JavaScript动态生成的内容,获取完整的页面结构。
- 示例代码:
from selenium import webdriver from bs4 import BeautifulSoup def fetch_head_and_body_with_selenium(url): driver = webdriver.Chrome() driver.get(url) html = driver.page_source soup = BeautifulSoup(html, 'html.parser') head = soup.find('head') body = soup.find('body') driver.quit() return head, body
总结
- 静态内容:使用
requests
和BeautifulSoup
。 - 动态内容:使用
Selenium
。
注意事项
- 遵守法律法规:确保爬虫行为符合相关法律法规和网站的使用条款。
- 尊重
robots.txt
:查看目标网站的robots.txt
文件,避免爬取禁止访问的页面。- 设置合理的请求间隔:避免对服务器造成过大压力,合理安排请求频率。
- 处理动态内容:对于动态加载的内容,优先考虑
Selenium
或其他支持JavaScript渲染的工具。