讲讲python使用xpath中遇到[<Element a at 0x39a9a80>到底是什么

码海霜晶狩
• 阅读 14856

写在前面

本人的所有文章只适合善于使用百度的人,因为所有基础知识个个博客复制粘贴了无数遍,我这里均不会详细讲述。

在这里我表示所有不经验证的转载都是耍流氓,把一篇篇错误的文章转载的到处都是,不知道浪费了多少人的时间精力去反复调试错误的代码,尤其是对初学者有极大的打击性。

大家在学习python爬虫的过程中,会发现一个问题,语法我看完了,说的也很详细,我也认真看了,爬虫还是不会写,或者没有思路,所以我的所有文章都会从实例的角度来解析一些常见的问题和报错。


Element是什么

回归正题,大家晕头转脑的看完繁杂的语法之后,已经迫不及待写点什么东西了,然后部分同学可能遇到了这个

<Element a at 0x39a9a80>
或者类似 Element a at 0x???????,这样的一个值,然后大家带着问题去搜,然后全是英文啊,什么一大堆乱七八糟的啊,英文不好的同学就崩溃了,在这里,我会重点解析一下

某种意义上来说,当你打印变量的时候得到的这个值,其实它是一个列表,然后列表中的每一个值都是一个字典

如何使用理解请看半成品开车实例,证明了本人非常擅长把学习和乐趣结合起来并且切身解决日常需求,滑稽脸.jpg


from bs4 import BeautifulSoup
from lxml import etree
import requests

gjc='SHKD-700'
#定义URL
html = "http://www.btanv.com/search/"+gjc+"-hot-desc-1"
#解码URL
html = requests.get(html).content.decode('utf-8')
#解析成xml
dom_tree = etree.HTML(html)
#在xml中定位节点,返回的是一个列表
links = dom_tree.xpath("//a[@class='download']")
for index in range(len(links)):
    # links[index]返回的是一个字典
    if (index % 2) == 0:
        print(links[index].tag)
        print(links[index].attrib)
        print(links[index].text)
        

实例解析

下面重点看看这个代码,

        print(links[index])
        print(type(links[index]))
        print(links[index].tag)#获取<a>标签名a
        print(links[index].attrib)#获取<a>标签的属性href和class
        print(links[index].text)#获取<a>标签的文字部分

打印出来的是

<Element a at 0x3866a58>
<class 'lxml.etree._Element'>
a
{'href': 'magnet:?xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca', 'class': 'download'}
磁力链接

该节点的html代码为

<a href="magnet:xt=urn:btih:7502edea0dfe9c2774f95118db3208a108fe10ca" class="download">磁力链接</a>

看到这里大家应该就非常兽血沸腾的了解了三个属性的用法了。

总结

  • Element类型是'lxml.etree._Element',某种意义来说同时是一个列表
  • 列表的需要使用tag\attrib\text三个不同的属性来获取我们需要的东西
  • 变量.tag获取到的是标签名是---字符串
  • 变量.attrib获取到的是节点标签a的属性---字典
  • 变量.text获取到的是标签文本--字符串

欢迎收藏点赞,拒绝转载,因为目前我也是自学向前摸索,这些都是我目前认知到的东西,肯定有讲的不准确的地方,不希望会误导到他人

点赞
收藏
评论区
推荐文章
粥白 粥白
4年前
全网最全python学习路线图,让学习不迷路
学习Python有一段时间了,最近也是在不断的整理Python相关的基础知识和学习一些新的知识,想来分享给大家。我刚开始接触Python时,和大多数初学者一样不知道从那里开始学习python,我也在网上找了许多python相关的资料来学习,但是资料多也不见得就好,因为不知道从哪里开始下手,走了许多弯路。后面我就整理了一套对初学者来说学习python能很快上手
Wesley13 Wesley13
4年前
java编码优化10技巧
最近,我给Java项目做了一次代码清理工作。经过清理后,我发现一组常见的违规代码(指不规范的代码并不表示代码错误)重复出现在代码中。因此,我把常见的这些违规编码总结成一份列表,分享给大家以帮助Java爱好者提高代码的质量和可维护性。这份列表没有依据任何规则或顺序,所有的这些都是通过代码质量工具包括CheckStyle(https://www.osch
Johnny21 Johnny21
4年前
Spring Boot整合Spring Cloud实现微服务架构学习
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接出处:https://blog.csdn.net/qq\_3076499,否则保留追究法律责任的权利。如果文中有什么错误,欢迎指出。以免更多的人被误导。当你看到这的时候,温馨提示:在学习springcloud之前,请先学习springboot,因为s
浩浩 浩浩
5年前
Android-插件化探索(一)
前言由于近期项目中要用到插件,所以特地去翻找资料学习了一番,现在在这里分享我所学到的东西给大家,有什么错误的希望能给我指出来,文章有点长,希望大家能认真读完。近些年来,插件化可谓是特别的火热,就拿支付宝美团等软件来说,都是使用这个技术来支撑他们的产品。但是什么是插件化呢,插件化到底有什么好处呢?插件化也就是运行的APP(宿主APP)去加载插件APP
Stella981 Stella981
4年前
Python 使用VS Code进行调试
VSCode是一款非常好用的编辑器,现在我基本上所有的开发任务都在VSCode上完成。它的代码调试工具其实也非常强大,但是许多人都不知道该怎么用,今天就来学习怎么用它调试Python代码吧。1.准备既然是用VSCode调试Python代码,那当然你得先安装好Python啦,如果你还没有安装,可以看这篇文章:超详细Pyt
Stella981 Stella981
4年前
Hadoop技术资料汇总(不断更新中)
这些资料都是我在工作中学习、解决问题的资料汇总,我不能保证这里罗列的所有资料对看到的人有用,但大部分都经过我的实际验证。在不断学习和实践过程中,我会不断更新和总结这些资料,同时欢迎大家留言交流。感谢这些资料的作者。一、HDFS1、集群安装:Hadoop2.6.0HA高可用集群配置详解(https://www.os
Wesley13 Wesley13
4年前
Java线程阻塞方法sleep()和wait()精炼详解
版权声明:因为个人水平有限,文章中可能会出现错误,如果你觉得有描述不当、代码错误等内容或者有更好的实现方式,欢迎在评论区告诉我,即刻回复!最后,欢迎关注博主!谢谢https://blog.csdn.net/weixin\_41101173/article/details/79889464一、前期基础知识储备sleep()和wait()方法都是Ja
Easter79 Easter79
4年前
SpringBoot快速入门
《SpringBoot基础教程》系列文章微信公众号【复刻版】,所有内容都可在我的博客查阅,点击最下方的阅读原文可跳转至我的博客:http://blog.didispace.com简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一
Wesley13 Wesley13
4年前
Java之五种遍历Map集合的方式
摘要:在java中所有的map都实现了Map接口,因此所有的Map都可以用以下的方式去遍历。在java中所有的map都实现了Map接口,因此所有的Map都可以用以下的方式去遍历。这篇文章主要给大家介绍了关于Java中遍历Map集合的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面一起学习学
Stella981 Stella981
4年前
SpringBoot快速入门
《SpringBoot基础教程》系列文章微信公众号【复刻版】,所有内容都可在我的博客查阅,点击最下方的阅读原文可跳转至我的博客:http://blog.didispace.com简介在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一
Stella981 Stella981
4年前
Seleinum_CSS定位方式
转载:https://www.cnblogs.com/longronglang/p/9144661.htmlCSS选择器:常见符号:表示id选择器.表示class选择器\表示子元素,层级一个空格也表示子元素,但是是所有的后代子元素,相当于xpath中的相对路径一、css:属性定
码海霜晶狩
码海霜晶狩
Lv1
孤帆远影碧空尽,唯见长江天际流。
文章
5
粉丝
0
获赞
0