【pyspider】关于匹配html的数据
今天刚刚接触pyspider,在调试的时候注意匹配数据可以这样写:
<div class="download-wp"> <a data-app-id="28855" data-app-vid="800689740" data-app-name="爱奇艺" data-app-pname="com.qiyi.video" data-app-vcode="81130" data-app-vname="9.7.6" data-app-icon="http://android-artworks.25pp.com/fs08/2018/08/03/6/110_60e3799782d5b646000125fb2c7b3a3c_con_130x130.png" data-app-rtype="0" data-oe="web" data-type="bind" data-feat="binded" data-app-categoryid="5029" data-app-subcategoryid="" data-install="7.9亿" data-like="64.00%" data-name="爱奇艺" data-pn="com.qiyi.video" class="install-btn i-source" rel="nofollow" href="http://www.wandoujia.com/apps/com.qiyi.video/binding?source=web_inner_referral_binded" data-track="detail-download-bind_direct_com.qiyi.video"> 安全下载 </a> <!-- --></div>
比如我想匹配当中的包名和版本名:
packagename=response.doc('div[class="download-wp"]>a').attr('data-app-pname')
version=response.doc('div[class="download-wp"]>a').attr('data-app-vname')
就是拿到了对应的a标签后,通过.attr('属性名')获取对应的属性名。
匹配安装包大小:
<dl class="infos-list"> <dt>大小</dt><dd> 29.75MB <meta itemprop="fileSize" content="29.75MB"></dd> <dt>分类</dt><dd class="tag-box"> <a href="http://www.wandoujia.com/category/5029?pos=w/tags/detail_com.qiyi.video" itemprop="SoftwareApplicationCategory" data-track="detail-click-appTag">影音播放</a> <a href="http://www.wandoujia.com/category/5029_716?pos=w/tags/detail_com.qiyi.video" itemprop="SoftwareApplicationCategory" data-track="detail-click-appTag">视频</a> </dd> <dt>TAG</dt><dd><div class="side-tags clearfix"> <div class="tag-box"><a href="http://www.wandoujia.com/tag/4"> 益智休闲 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/6"> 趣味 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/8"> 消除 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/12"> 战斗 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/10"> 经典 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/18"> 动作 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/20"> 关卡 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/22"> 简单 </a></div> </div></dd> <dt>更新</dt><dd><time id="baidu_time" itemprop="datePublished" datetime="2018年08月03日">2018年08月03日</time></dd> <dt>版本</dt><dd> 9.7.6</dd> <dt>要求</dt><dd class="perms" itemprop="operatingSystems" content="Android">Android 4.0.2 以上 <div><a href="javascript:;" rel="nofollow" class="view-perms" id="j-view-perms">查看权限要求<i class="arrow-down"> </i></a><ul id="j-perms-list" class="perms-list" style="display:none"> <li><span class="perms" itemprop="permissions">读取短信或彩信</span></li> <li><span class="perms" itemprop="permissions">发送短信或彩信</span></li> </ul></div> </dd> <dt>开发者</dt><dd><span class="dev-sites" itemprop="name">北京爱奇艺科技有限公司</span></dd> </dl>
这样写也可以
size=response.doc('.infos-list > dd>meta[itemprop="fileSize"]').attr.content
但是如果上面匹配包名的时候这样写:
packagename=response.doc('div[class="download-wp"]>a').attr.data-app-pname
就会报错~~
<dl class="infos-list"> <dt>大小</dt><dd> 29.75MB <meta itemprop="fileSize" content="29.75MB"></dd> <dt>分类</dt><dd class="tag-box"> <a href="http://www.wandoujia.com/category/5029?pos=w/tags/detail_com.qiyi.video" itemprop="SoftwareApplicationCategory" data-track="detail-click-appTag">影音播放</a> <a href="http://www.wandoujia.com/category/5029_716?pos=w/tags/detail_com.qiyi.video" itemprop="SoftwareApplicationCategory" data-track="detail-click-appTag">视频</a> </dd> <dt>TAG</dt><dd><div class="side-tags clearfix"> <div class="tag-box"><a href="http://www.wandoujia.com/tag/4"> 益智休闲 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/6"> 趣味 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/8"> 消除 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/12"> 战斗 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/10"> 经典 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/18"> 动作 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/20"> 关卡 </a></div> <div class="tag-box"><a href="http://www.wandoujia.com/tag/22"> 简单 </a></div> </div></dd> <dt>更新</dt><dd><time id="baidu_time" itemprop="datePublished" datetime="2018年08月03日">2018年08月03日</time></dd> <dt>版本</dt><dd> 9.7.6</dd> <dt>要求</dt><dd class="perms" itemprop="operatingSystems" content="Android">Android 4.0.2 以上 <div><a href="javascript:;" rel="nofollow" class="view-perms" id="j-view-perms">查看权限要求<i class="arrow-down"> </i></a><ul id="j-perms-list" class="perms-list" style="display:none"> <li><span class="perms" itemprop="permissions">读取短信或彩信</span></li> <li><span class="perms" itemprop="permissions">发送短信或彩信</span></li> </ul></div> </dd> <dt>开发者</dt><dd><span class="dev-sites" itemprop="name">北京爱奇艺科技有限公司</span></dd> </dl>
【pyspider】关于匹配html的数据的更多相关文章
- pyspider用PyQuery解析页面数据
示例说明: 本示例主要是PyQuery解析返回的response页面数据.response.doc解析页面数据是pyspider的主要用法,应该熟练掌握基本使用方法.其他返回类型示例见后续文章. py ...
- laravel+vue+vuetify 前端匹配不到数据记录 No matching records found
后端数据:使用guzzle获取api数据,(安装扩展包guzzle) use GuzzleHttp\Client; //获取请求远程产品信息需要的参数public function getParams ...
- COLLATE匹配两表数据
MesOrd.MesNO COLLATE Chinese_Taiwan_Stroke_CI_AS = ErpSO.SoNO
- 【转载】使用Pandas进行数据匹配
使用Pandas进行数据匹配 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas进行数据匹配 目录 merge()介绍 inner模式匹配 lefg模式匹配 right模式匹配 outer模式 ...
- Python正则匹配多行,多个数据
最近用Python做一个crawler工具的时候,发现用一个正则表达式可以匹配到个数据的时候用match.group()只能打印出第一个数据,其它数据不能打印出来.最后找到解决方法,现在记录一下,直接 ...
- 转载:【原译】Erlang构建和匹配二进制数据(Efficiency Guide)
转自:http://www.cnblogs.com/futuredo/archive/2012/10/19/2727204.html Constructing and matching binarie ...
- Python-使用Magellan进行数据匹配总结
参考:http://www.biggorilla.org/zh-hans/walkt/ 使用Magellan进行数据匹配过程如下: 假设有两个数据源为A和B, A共有四列数据:(A_Column1,A ...
- 转载:使用Pandas进行数据匹配
使用Pandas进行数据匹配 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas进行数据匹配 目录 merge()介绍 inner模式匹配 lefg模式匹配 right模式匹配 outer模式 ...
- C#简单爬取数据(.NET使用HTML解析器ESoup和正则两种方式匹配数据)
一.获取数据 想弄一个数据库,由于需要一些人名,所以就去百度一下,然后发现了360图书馆中有很多人名 然后就像去复制一下,发现复制不了,需要登陆 此时f12查看源码是可以复制的,不过就算可以复制想要插 ...
随机推荐
- CentOS修改locale解决调用API乱码问题
查看所有的locale语言 locale 查看当前操作系统使用的语言 echo $LANG 永久设置系统locale语言 vi /etc/profile LANG="zh_CN.UTF-8& ...
- spring+mybatis 配置双数据源
配置好后,发现网上已经做好的了, 不过,跟我的稍有不同, 我这里再拿出来现个丑: properties 文件自不必说,关键是这里的xml: <?xml version="1.0&quo ...
- <基础> PHP 进阶之 类(Class)
属性 类的变量成员叫做“属性”,或者叫“字段”.“特征”,在本文档统一称为“属性”.属性声明是由关键字 public,protected 或者 private 开头,然后跟一个普通的变量声明来组成.属 ...
- Linux 下 Bash配置文件读取
Linux安装时可能要修改的配置文件:/etc/profile./etc/bashrc(ubuntu没有这个文件,对应地,其有/etc/bash.bashrc文件.我用的是ubuntu系统,所以下面将 ...
- Linux的学习 --corntab
计划任务的使用方法 http://www.cnblogs.com/CraryPrimitiveMan/p/4124851.html
- day12-集合
集合 1.什么是集合 set(集合)是一个无序不重复元素的数据集,与列表的区别1.无序的,不可以使用索引进行顺序的访问2.不能够有重复的数据. 项目开发中,集合主要用在数据元素的去重和测试是否存在.集 ...
- Ajax技术剖析
Ajax的全称是Asynchronous JavaScript and XML,是JS的特有功能,它作用是异步JS数据交互,即在不进行页面刷新的情况下进行部分数据的获取,性能较高.值得注意的是,仅有A ...
- Linux命令之top
Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运 ...
- ReactiveX 学习笔记(10)可连接的数据流
Connectable Observable Operators 本文的主题为处理 Connectable Observable 的操作符. 这里的 Observable 实质上是可观察的数据流. R ...
- Oracle数据库备份/导入工具
expdp和impdp常用于ORACLE数据库的导入导出. expdp导出数据库 1.root用户创建用于impdp/expdp导入导出的目录: # mkdir -p /home/dmpdata # ...