当前位置: 首页 > news >正文

Python网页数据抓取常用的库及方法介绍

Python网页数据抓取常用的库及方法介绍

       摘要:以下是Python网络数据抓取常用的6个库的详细介绍,包括它们的概述以及每个库中最常用的10个函数(如果某些库常用函数不足10个,则列出所有常用函数)。每个函数都附带功能描述、用法说明和使用示例。这些库在网络爬虫、数据采集和网页解析领域被广泛使用。

1. Requests

  • 概述:Requests 是一个简单而强大的HTTP请求库,用于发送HTTP请求和处理响应,适合网络数据抓取和API交互。

1.1 常用函数

  1. requests.get()
    功能:发送GET请求获取网页内容或API数据。
    用法requests.get(url, params=None, headers=None)url 是目标地址,params 是查询参数,headers 是请求头。
    示例

    import requests
    response = requests.get('https://api.github.com')
    print(response.status_code)  # 输出: 200 (请求成功)
    print(response.json())  # 输出: JSON格式的响应内容
    
  2. requests.post()
    功能:发送POST请求,通常用于提交表单数据或API调用。
    用法requests.post(url, data=None, json=None, headers=None)data 是表单数据,json 是JSON数据。
    示例

    import requests
    payload = {'username': 'test', 'password': 'pass'}
    response = requests.post('https://httpbin.org/post', data=payload)
    print(response.json())  # 输出: 服务器返回的表单数据
    
  3. requests.head()
    功能:发送HEAD请求,仅获取响应头信息,不返回响应体。
    用法requests.head(url, headers=None)url 是目标地址。
    示例

    import requests
    response = requests.head('https://www.example.com')
    print(response.headers)  # 输出: 响应头信息
    
  4. requests.put()
    功能:发送PUT请求,用于更新资源。
    用法requests.put(url, data=None, json=None)data 是更新数据。
    示例

    import requests
    payload = {'key': 'value'}
    response = requests.put('https://httpbin.org/put', json=payload)
    print(response.json())  # 输出: 服务器返回的更新数据
    
  5. requests.delete()
    功能:发送DELETE请求,用于删除资源。
    用法requests.delete(url)url 是目标地址。
    示例

    import requests
    response = requests.delete('https://httpbin.org/delete')
    print(response.status_code)  # 输出: 200 (删除成功)
    
  6. requests.Session()
    功能:创建会话对象,保持连接状态(如cookie)。
    用法requests.Session()
    示例

    import requests
    session = requests.Session()
    session.get('https://httpbin.org/cookies/set/sessioncookie/123456789')
    response = session.get('https://httpbin.org/cookies')
    print(response.json())  # 输出: 会话中的cookie
    
  7. requests.Response.status_code
    功能:获取HTTP响应状态码。
    用法response.status_coderesponse 是请求返回的对象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.status_code)  # 输出: 200 (请求成功)
    
  8. requests.Response.text
    功能:以字符串形式获取响应内容(适用于文本)。
    用法response.textresponse 是请求返回的对象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.text[:100])  # 输出: 网页内容的前100个字符
    
  9. requests.Response.json()
    功能:将响应内容解析为JSON格式。
    用法response.json()response 是请求返回的对象。
    示例

    import requests
    response = requests.get('https://api.github.com')
    data = response.json()
    print(data)  # 输出: JSON解析后的数据
    
  10. requests.Response.headers
    功能:获取响应头信息。
    用法response.headersresponse 是请求返回的对象。
    示例

    import requests
    response = requests.get('https://www.example.com')
    print(response.headers)  # 输出: 响应头字典
    

2. Beautiful Soup

  • 概述:Beautiful Soup 是一个用于解析HTML和XML文档的库,适合从网页中提取结构化数据。

2.1 常用函数

  1. bs4.BeautifulSoup()
    功能:创建BeautifulSoup对象,解析HTML或XML内容。
    用法bs4.BeautifulSoup(markup, parser)markup 是HTML/XML字符串,parser 是解析器(如'lxml')。
    示例

    from bs4 import BeautifulSoup
    html = "<p>Hello, World!</p>"
    soup = BeautifulSoup(html, 'html.parser')
    print(soup.p.text)  # 输出: Hello, World!
    
  2. BeautifulSoup.find()
    功能:查找第一个匹配的标签或元素。
    用法soup.find(name, attrs)name 是标签名,attrs 是属性字典。
    示例

    from bs4 import BeautifulSoup
    html = "<div><p>First</p><p>Second</p></div>"
    soup = BeautifulSoup(html, 'html.parser')
    p_tag = soup.find('p')
    print(p_tag.text)  # 输出: First
    
  3. BeautifulSoup.find_all()
    功能:查找所有匹配的标签或元素,返回列表。
    用法soup.find_all(name, attrs)name 是标签名,attrs 是属性字典。
    示例

    from bs4 import BeautifulSoup
    html = "<div><p>First</p><
http://www.xdnf.cn/news/863191.html

相关文章:

  • Python非监督学习
  • 如何轻松地将文件从 PC 传输到 iPhone?
  • 吃透 Golang 基础:数据结构之 Struct
  • 涂胶协作机器人解决方案 | Kinova Link 6 Cobot在涂胶工业的方案应用与价值
  • 四、函数调用包含单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型
  • 4.1 HarmonyOS NEXT原生AI能力集成:盘古大模型端侧部署与多模态交互实战
  • 在compose中的Canvas用kotlin显示多数据波形闪烁的问题
  • 李飞飞World Labs开源革命性Web端3D渲染器Forge!3D高斯溅射技术首次实现全平台流畅运行
  • VR博物馆推动现代数字化科技博物馆
  • 【Linux】进程 信号保存 信号处理 OS用户态/内核态
  • bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))
  • Flutter面试题
  • 【学习笔记】Circuit Tracing: Revealing Computational Graphs in Language Models
  • 【OSG学习笔记】Day 15: 路径动画与相机漫游
  • 海康网络摄像头实时取帧转Opencv数组格式(h,w,3),已实现python、C#
  • [C]C语言日志系统宏技巧解析
  • 让视觉基础模型(VFMs)像大语言模型(LLMs)一样“会思考”​
  • 3D视觉重构工业智造:解码迁移科技如何用“硬核之眼“重塑生产节拍
  • SOLIDWORKS 2025教育版提供了丰富的自学资源
  • LabVIEW与Modbus/TCP温湿度监控系统
  • 扫地机产品--材质传感器算法开发与虚拟示波器
  • R语言基础| 下载、安装
  • Elasticsearch中的文档(Document)介绍
  • 代码随想录算法训练营第60期第五十七天打卡
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)
  • 第八部分:阶段项目 6:构建 React 前端应用
  • 华为OD机试_2025 B卷_区间交集(Python,100分)(附详细解题思路)
  • ann算法的种类有哪些,之间的区别,各自的适用场景
  • 每日算法刷题Day22 6.4:leetcode二分答案3道题,用时1h30min
  • 如何在 HTML 中添加按钮