今天刚刚接触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>&nbsp;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">&nbsp;</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>&nbsp;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">&nbsp;</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的数据的更多相关文章

  1. pyspider用PyQuery解析页面数据

    示例说明: 本示例主要是PyQuery解析返回的response页面数据.response.doc解析页面数据是pyspider的主要用法,应该熟练掌握基本使用方法.其他返回类型示例见后续文章. py ...

  2. laravel+vue+vuetify 前端匹配不到数据记录 No matching records found

    后端数据:使用guzzle获取api数据,(安装扩展包guzzle) use GuzzleHttp\Client; //获取请求远程产品信息需要的参数public function getParams ...

  3. COLLATE匹配两表数据

    MesOrd.MesNO COLLATE Chinese_Taiwan_Stroke_CI_AS = ErpSO.SoNO

  4. 【转载】使用Pandas进行数据匹配

    使用Pandas进行数据匹配 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas进行数据匹配 目录 merge()介绍 inner模式匹配 lefg模式匹配 right模式匹配 outer模式 ...

  5. Python正则匹配多行,多个数据

    最近用Python做一个crawler工具的时候,发现用一个正则表达式可以匹配到个数据的时候用match.group()只能打印出第一个数据,其它数据不能打印出来.最后找到解决方法,现在记录一下,直接 ...

  6. 转载:【原译】Erlang构建和匹配二进制数据(Efficiency Guide)

    转自:http://www.cnblogs.com/futuredo/archive/2012/10/19/2727204.html Constructing and matching binarie ...

  7. Python-使用Magellan进行数据匹配总结

    参考:http://www.biggorilla.org/zh-hans/walkt/ 使用Magellan进行数据匹配过程如下: 假设有两个数据源为A和B, A共有四列数据:(A_Column1,A ...

  8. 转载:使用Pandas进行数据匹配

    使用Pandas进行数据匹配 本文转载自:蓝鲸的网站分析笔记 原文链接:使用Pandas进行数据匹配 目录 merge()介绍 inner模式匹配 lefg模式匹配 right模式匹配 outer模式 ...

  9. C#简单爬取数据(.NET使用HTML解析器ESoup和正则两种方式匹配数据)

    一.获取数据 想弄一个数据库,由于需要一些人名,所以就去百度一下,然后发现了360图书馆中有很多人名 然后就像去复制一下,发现复制不了,需要登陆 此时f12查看源码是可以复制的,不过就算可以复制想要插 ...

随机推荐

  1. getdate — 取得日期/时间信息-----参数是一个 integer 的 Unix 时间戳

      <?php$today = getdate();print_r($today);?> Array ( [seconds] => 40 [minutes] => 58 [ho ...

  2. Docker 初学

    据我理解, 它最大的用途是 将我们的应用及环境整个打包, 这样如果我们的开发环境环境部署了,就不用再分别去测试/ 生产环境部署了! -- 但是, 新问题在于, 拷贝这些东西比较麻烦... Docker ...

  3. 5. MYSQL问题:Access denied for user 'root'@'localhost' (using password:YES)

    开发Web项目时,连接MYSQL数据库,出现问题:Access denied for user 'root'@'localhost' (using password:YES).       解决方案: ...

  4. HTTP(搁置)

    HTTP请求 响应报头内容 Connection:keep-alive #当浏览器与服务器通信时对于长连接如何进行处理:close/keep-alive Content-Encoding:gzip # ...

  5. centos7.5安装golang

    1.下载 [root@localhost bin]#wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz [root@localhost ...

  6. 讲讲亿级PV的负载均衡架构

    引言 本来没想写这个题材的,为了某某童鞋能够更好的茁壮成长,临时写一篇负载均衡的.负载均衡,大家可能听过什么3层负载均衡.4层负载均衡.7层负载均衡什么的?那这是怎么分的呢,ok,是根据osi七层网络 ...

  7. Mac安装Mysql-python _mysql.c:44:10: fatal error: 'my_config.h' file not found

    解决步骤 brew install mysql brew unlink mysql brew install mysql-connector-c sed -i -e /bin/mysql_config ...

  8. RAD Tokyo 10.2.2

    TDialogService类 如果您是使用比较新的RAD Studio版本. 那么您应该开始改用FMX.DialogService程序单元中TDialogService类别的类别方法来取代以前的Me ...

  9. Tomcat的相关配置问题

    Tomcat的目录结构bin ---  存放启动和关闭tomcat的脚本文件 conf --- 存放tomcat的各种配置文件  (主要有server.xml,context.xml,web.xml) ...

  10. WPF按钮响应函数中执行操作耗时较长时,UI 界面不能实时更新——问题原因与解决方案

    原因: 一般来说,一个WPF窗口程序,只有一个UI线程, 如果这个线程停在某个函数,UI将会被阻塞,所有其他的界面操作都不能即时响应. 解决方案: 新开一个线程来执行耗时较长的操作,以不阻塞UI.