当前位置: 首页 > 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><

相关文章:

  • SpringBoot+Mybatisplus配置多数据源(超级简单!!!!)
  • C# 一个解决方案放一个dll项目,一个dll测试项目 ,调试dll项目的源码
  • NLP学习路线图(二十三):长短期记忆网络(LSTM)
  • BERT vs Rasa 如何选择 Hugging Face 与 Rasa 的区别 模型和智能体的区别
  • 祝贺XC3576H通过银河麒麟桌面操作系统的兼容性测试,取得麒麟软件互认证证书
  • tensorflow image_dataset_from_directory 训练数据集构建
  • 力扣刷题Day 70:在排序数组中查找元素的第一个和最后一个位置(34)
  • python3GUI--车牌、车牌颜色识别可视化系统 By:PyQt5(详细介绍)
  • 【更新至2024年】1991-2024年上市公司信息披露质量KV指数数据(含原始数据+计算过程+结果)
  • Vue跨层级通信
  • c++中char *p指针指向字符串输出问题
  • 2D 写实交互数字人:多终端实时交互,引领数字化浪潮
  • 软件工程:如何在项目中把软件做好
  • 数学复习笔记 25
  • 神经符号AI的企业应用:结合符号推理与深度学习的混合智能
  • 虚拟机CentOS 7 网络连接显示“以太网(ens33,被拔出)“、有线已拔出、CentOS7不显示网络图标
  • Redis中的setIfAbsent方法和execute
  • Mybatis入门到精通
  • SQL 中 JOIN 的执行顺序优化指南
  • GAN模式崩塌难题:成因分析与多维度解决方案
  • 电子商务网站功能需求/世界十大网站排名
  • 加强学校网站建设的通知/百度指数是啥
  • 互联网网站建设哪里好/天津网站排名提升多少钱
  • 国家城乡建设网站/宁波seo推广公司排名
  • 网站售后服务模板/百度账号怎么改名字
  • 乐陵seo外包信德/黄山seo