head_body标签实践

发布于:2025-05-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

如何自己编写以及看到他人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> 数据

  1. 使用 requestsBeautifulSoup

    • 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
      
  2. 使用 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
      

总结

  • 静态内容:使用 requestsBeautifulSoup
  • 动态内容:使用 Selenium

注意事项

  1. 遵守法律法规:确保爬虫行为符合相关法律法规和网站的使用条款。
  2. 尊重 robots.txt:查看目标网站的 robots.txt 文件,避免爬取禁止访问的页面。
  3. 设置合理的请求间隔:避免对服务器造成过大压力,合理安排请求频率。
  4. 处理动态内容:对于动态加载的内容,优先考虑 Selenium 或其他支持JavaScript渲染的工具。

网站公告

今日签到

点亮在社区的每一天
去签到