当前位置: 首页 > 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.lqws.cn/news/126451.html

相关文章:

  • 稻米分类和病害检测数据集(猫脸码客第237期)
  • 第八部分:阶段项目 6:构建 React 前端应用
  • LeetCode[513]找树左下角的值
  • postman自动化测试
  • JVMTI 在安卓逆向工程中的应用
  • 国际数字影像产业园智慧办公赋能文创企业加速成长​
  • PyTest框架学习
  • SARIMA时间序列分析:三大模型对比
  • Efficient RAW Image Deblurring with Adaptive Frequency Modulation
  • 代码训练LeetCode(21)跳跃游戏2
  • 数据分析之OLTP vs OLAP
  • [C++入门]简化的艺术---对模版的初步探索
  • powershell 安装 .netframework3.5
  • Linux基本指令(三)
  • 程一笑的AI梦何时醒?
  • Kafka深度技术解析:架构、原理与最佳实践
  • Spring Boot 从Socket 到Netty网络编程(上):SOCKET 基本开发(BIO)与改进(NIO)
  • 【dynamic-datasource】动态数据源切换失效的深度解析与解决方案
  • SQL进阶之旅 Day 14:数据透视与行列转换技巧
  • App 上线后还能加固吗?iOS 应用的动态安全补强方案实战分享(含 Ipa Guard 等工具组合)
  • 【Zephyr 系列 8】构建完整 BLE 产品架构:状态机 + AT 命令 + 双通道通信实战
  • 使用PyInstaller将Python脚本打包成可执行文件
  • AD四层板的层叠设计
  • 组件库二次封装——透传问题
  • ESP32S3 LVGL超大字体
  • 【八股消消乐】如何解决SQL线上死锁事故
  • 缓存控制HTTP标头设置为“无缓存、无存储、必须重新验证”
  • Java高级 | 【实验四】Springboot 获取前端数据与返回Json数据
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器
  • 前端判断内容文字是否溢出容器,创建临时元素来模拟文本实际宽度