zoukankan      html  css  js  c++  java
  • xpath草稿

    (一)日期和简介
    date:2017/12/18 
    name:a标签href属性提取抛出异常list index out of range
    
    (二)问题详细说明:
    以百度新闻页面为例:
    1.node_list = html_etree.xpath("//a")  # 获得a标签节点198个
    2.遍历节点,获取href属性:a_href = node.xpath("./@href")[0]时
    到173后面的href属性提取异常。
    后发现:174标签为:<a id="change-city" class="select-btn">切换城市</a>
    没有href属性。
    
    (三)解决方案
    1.推荐方法:浏览器中查找报错标签:html页面内,根据第172标签,查找第174标签。
    2.风险点:a标签可能的情况:
    	(1)没有href属性
    	(2)有href属性
    		1)href=''
    		2)href='#'
    		3)href='#top'
    		4)href='javascript:void(0)'
    		5)href='/'
    		6)href='./'
    		7)href='/society'
    		8)href='http://XXX....'
    		9)href='https://XXX....'
    		10)href='mailto:root@freebuf.com'
    	提取href时,前面4种没有意义,后面的有意义。
    风险1:requests的get方法提取a标签,只能提取静态html中的,如果有js动态加载的a标签,不会被提取到。(如果有需要,考虑用selenium)
    风险2:href中的有效链接,域名之外的不需要,会妨碍对站点的全站抓取。(考虑用正则匹配,筛选出指定域名下的url)
    

      

  • 相关阅读:
    Flask_脚本
    数据库
    模板
    视图函数和视图类
    HTTP请求
    Flask路由注册
    初识Flask
    微信小程序之基础使用
    celery任务队列
    文件处理小结
  • 原文地址:https://www.cnblogs.com/andy9468/p/9642806.html
Copyright © 2011-2022 走看看