栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫 xpath,jsonpath,Beautifulsoup 基础(笔记)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫 xpath,jsonpath,Beautifulsoup 基础(笔记)

1.xpath使用
xpath 使用:         注意:提前安装xpath 插件         (1)打开 chrome 浏览器         (2 )点击右上角小圆点         (3 )更多工具         (4 )扩展程序         (5 )拖拽 xpath 插件到扩展程序中         (6 )如果 crx 文件失效,需要将后缀修改 zip         (7 )再次拖拽         (8 )关闭浏览器重新打开         (9 ) ctrl + shift + x         (10 )出现小黑框 1. 安装 lxml 库         pip install lxml ‐ i https : // pypi . douban . com / simple 2. 导入 lxml . etree         from lxml import etree 3. etree . parse () 解析本地文件         html_tree = etree . parse ( 'XX.html' ) 4. etree . HTML () 服务器响应文件         html_tree = etree . HTML ( response . read (). decode ( 'utf‐8' ) 4. html_tree . xpath ( xpath 路径 )
 2.xpath基本语法
1. 路径查询         //:查找所有子孙节点,不考虑层级关系         / :找直接子节点 2. 谓词查询         //div[@id]         //div[@id="maincontent"] 3. 属性查询         //@class 4.模糊查询         //div[contains(@id, "he")]         //div[starts‐with(@id, "he")] 5. 内容查询         //div/h1/text() 6. 逻辑运算         //div[@id="head" and @]         //title | //price
3.JsonPath
jsonpath 的安装及使用方式: pip 安装:         pip install jsonpath jsonpath 的使用:         obj = json.load(open('json文件 ', 'r', encoding='utf‐8'))         ret = jsonpath.jsonpath(obj, 'jsonpath语法 ')  
4.BeautifulSoup         (1)基本简介
1.BeautifulSoup 简称:         bs4 2. 什么是 BeatifulSoup ?         BeautifulSoup,和 lxml 一样,是一个 html 的解析器,主要功能也是解析和提取数据 3. 优缺点?         缺点:效率没有lxml 的效率高         优点:接口设计人性化,使用方便
        (2)安装以及创建
1. 安装         pip install bs4 2. 导入         from bs4 import BeautifulSoup 3. 创建对象         服务器响应的文件生成对象                 soup = BeautifulSoup(response.read().decode(), 'lxml')         本地文件生成对象                 soup = BeautifulSoup(open('1.html'), 'lxml')         注意:默认打开文件的编码格式gbk 所以需要指定打开编码格式  
        (3)节点定位
1. 根据标签名查找节点         soup.a 【注】只能找到第一个 a         soup.a.name         soup.a.attrs 2. 函数         (1).find(返回一个对象 )                 find('a'):只找到第一个a 标签 find('a', title=' 名字 ')                 find('a', class_='名字')         (2).find_all(返回一个列表 )                 find_all('a') 查找到所有的a                 find_all(['a', 'span']) 返回所有的a 和 span                 find_all('a', limit=2) 只找前两个a         (3).select(根据选择器得到节点对象 ) 【推荐】                 1.element                         eg:p                 2..class                         eg:.firstname                 3.#id                         eg:#firstname                 4.属性选择器                         [attribute]                                 eg:li = soup.select('li[class]')                         [attribute=value]                                 eg:li = soup.select('li[]')                 5.层级选择器                         element element                                 div p                         element>element                                 div>p                         element,element                                 div,p                         eg:soup = soup.select('a,span')  
4.节点信息
(1). 获取节点内容:适用于标签中嵌套标签的结构         obj.string         obj.get_text()【推荐】 (2). 节点的属性         tag.name 获取标签名                 eg:tag = find('li)                         print(tag.name)         tag.attrs将属性值作为一个字典返回 (3). 获取节点属性         obj.attrs.get('title')【常用】         obj.get('title')         obj['title']  
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号