xpath:根据父节点找兄弟节点

有些网站的节点标志比较“随性”,比如ebay的销售记录:http://offer.ebay.com/ws/eBayISAPI.dll?ViewBidsLogin&item=112797791375&rt=nc
当采集碰到干扰数据时,需要根据节点之间的关系来进行处理:

微信图片_20180409145506.png

代码如下:

   node_list = response.xpath('//th[contains(text(), "Date of Purchase")]/../../tr[@bgcolor]')[1:]  # ..表示当前节点的父节点
   for node in node_list :
       td_text_list = [td.xpath('string(.)').extract_first().replace('\xa0', ' ').strip() for td in node.xpath('./td')
                           if td.xpath('string(.)').extract_first()]   # 加上if判断是因为头尾的td节点文本为''
       yield td_text_list

   PS: './/td'与'//td'的区别在于,'.//td'表示当前节点下的所有td子节点,而'//td'表示根目录下的所有td子节点.
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这个不错分享给大家,从扣上看到的,就转过来了 《电脑专业英语》 file [fail] n. 文件;v. 保存文...
    麦子先生R阅读 7,088评论 5 24
  • 沉静的塘儿, 小荷偷偷地探出脑袋。 那是我的思念,悄悄地 发了芽。
    湍河故事阅读 279评论 0 1
  • 帮人,是一门艺术.要帮人确没帮上人,最后大家依然很开心,是一门学问。 没帮上人,最后大家还很开...
    Beyond_C阅读 1,177评论 1 2
  • Home, sweet home! 终于回家了。今天早晨回到墨尔本,墨尔本机场人山人海, 我却意外地在机场遇上了我...
    SandyZhang_ce42阅读 227评论 0 2
  • 编译环境 官方的编译环境要求如下,值得注意的是这里的NDK版本最好是r10e,亲测过其他两个版本的NDK并没有成功...
    manimaniho阅读 4,859评论 1 5

友情链接更多精彩内容