使用python爬取网络资源

news/2025/3/31 19:06:01/

整体思路

网络资源爬取通常分为以下几个步骤:

  1. 发送 HTTP 请求:使用requests库向目标网站发送请求,获取网页的 HTML 内容。
  2. 解析 HTML 内容:使用BeautifulSoup库解析 HTML 内容,从中提取所需的数据。
  3. 处理数据:对提取的数据进行清洗、存储等操作。

代码实现

import requests
from bs4 import BeautifulSoup

def scrape_website(url):
    try:
        # 发送 HTTP 请求获取网页内容
        # requests.get 方法会向指定的 URL 发送一个 GET 请求
        response = requests.get(url)
        # 检查响应状态码,如果状态码不是 200,会抛出 HTTPError 异常
        response.raise_for_status()

        # 使用 BeautifulSoup 解析 HTML
        # 'html.parser' 是 Python 内置的 HTML 解析器
        soup = BeautifulSoup(response.text, 'html.parser')

        # 这里可以根据网页结构提取你需要的信息
        # 例如,提取所有的标题标签
        titles = soup.find_all('title')
        for title in titles:
            print(title.text)

        # 示例:提取所有的链接
        links = soup.find_all('a')
        for link in links:
            href = link.get('href')
            if href:
                print(href)

    except requests.RequestException as e:
        print(f"请求发生错误: {e}")
    except Exception as e:
        print(f"发生未知错误: {e}")

if __name__ == "__main__":
    # 要爬取的网页 URL
    url = 'https://www.example.com'
    scrape_website(url)
   

代码说明

  1. 导入必要的库
    • requests:用于发送 HTTP 请求,获取网页内容。
    • BeautifulSoup:用于解析 HTML 内容,方便提取所需的数据。
  2. 定义爬取函数
    • scrape_website函数接收一个 URL 作为参数,向该 URL 发送 HTTP 请求并解析响应内容。
  3. 发送请求并检查状态
    • requests.get(url):向指定的 URL 发送一个 GET 请求,并返回一个响应对象。
    • response.raise_for_status():检查响应状态码,如果状态码不是 200,会抛出HTTPError异常。
  4. 解析 HTML
    • BeautifulSoup(response.text, 'html.parser'):使用BeautifulSoup解析 HTML 内容,response.text是响应的文本内容,'html.parser'是 Python 内置的 HTML 解析器。
  5. 提取数据
    • soup.find_all('title'):查找所有的<title>标签,并返回一个列表。
    • soup.find_all('a'):查找所有的<a>标签,并返回一个列表。
    • link.get('href'):获取<a>标签的href属性值。
  6. 处理异常
    • requests.RequestException:捕获请求过程中可能出现的异常,如网络连接错误、请求超时等。
    • Exception:捕获其他未知异常。
  7. 主程序
    • 调用scrape_website函数,传入要爬取的网页 URL

教程

1. 安装必要的库

在运行代码前,你需要安装requestsbeautifulsoup4库。可以使用以下命令进行安装:

pip install requests beautifulsoup4

2. 替换 URL

将代码中的url = 'https://www.example.com'替换为你要爬取的实际网页 URL。

3. 提取所需数据

根据目标网页的 HTML 结构,使用BeautifulSoup的方法提取你需要的数据。常见的方法有:

  • find():查找第一个匹配的标签。
  • find_all():查找所有匹配的标签。
  • select():使用 CSS 选择器查找标签。
4. 处理数据

提取到数据后,你可以对其进行清洗、存储等操作。例如,将数据保存到文件中或存储到数据库中。

5. 遵守规则

在爬取网页时,要遵守网站的robots.txt规则和相关法律法规,避免对网站造成不必要的负担。

 

 


http://www.ppmy.cn/news/1583611.html

相关文章

流行病学计算

title: “[R语言] 流行病学计算” date: 2022-12-06 lastmod: 2022-12-06 draft: false tags: [“R语言”,“流行病学”,“统计学”] toc: true autoCollapseToc: true 主要来自结果数据计算 R C 计算卡方 compare<-matrix(c(99,48,29,0,2,3,2,0,0,0,0,11),nr 3) compare…

【学习笔记】大模型架构设计与长上下文能力的实现

大模型架构 Encoder-Decoder 继承自传统的Transformer架构&#xff0c;包含一个编码器encoder&#xff0c;以及一个解码器decoder&#xff0c;这个在之前介绍过 其中&#xff0c;编码器采用的是双向注意力&#xff0c;即每一个元素的attention可以关注所有元素&#xff1b;而…

SpringMVC_day02

一、SSM 整合 核心步骤 依赖管理 包含 SpringMVC、Spring JDBC、MyBatis、Druid 数据源、Jackson 等依赖。注意点&#xff1a;确保版本兼容性&#xff08;如 Spring 5.x 与 MyBatis 3.5.x&#xff09;。 配置类 SpringConfig&#xff1a;扫描 Service 层、启用事务管理、导入…

Oracle数据库服务器地址变更与监听配置修改完整指南

一、前言 在企业IT运维中&#xff0c;Oracle数据库服务器地址变更是常见的运维操作。本文将详细介绍如何安全、高效地完成Oracle数据库服务器地址变更及相关的监听配置修改工作&#xff0c;确保数据库服务在迁移后能够正常运行。 二、准备工作 1. 环境检查 确认新旧服务器I…

基于javaweb的SSM+Maven电脑公司财务管理系统设计与实现(源码+文档+部署讲解)

​ 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、…

vue 封装 Axios菜鸟教程

1、Axios依赖下载 $ npm install axios 2、以下链接为Axios 的api Axios 实例 | Axios中文文档 | Axios中文网 3、 项目新建request.js&#xff0c;文件名称按照驼峰命名法就可以 4、封装request.js代码如下 import axios from "axios"//创建axios实例&#xff0…

QOpenGLWidget视频画面上绘制矩形框

一、QPainter绘制 在QOpenGLWidget中可以绘制,并且和OpenGL的内容叠在一起。paintGL里面绘制完视频后,解锁资源,再用QPainter绘制矩形框。这种方式灵活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bind();//绘制视频数据// 解绑VAOg…

windows下面nginx配置及测试

1&#xff09;下载解压 目录是&#xff1a;E:\tools\nginx-1.26.3 2&#xff09;在E:\tools\nginx-1.26.3下面建目录website 放置index2.html 内容如下 &#xff1a; <!DOCTYPE html> <html> <head><title>My Personal Website</title> &…