Element是什么

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

<Element a at 0x39a9a80>
或者类似 Element a at 0x???????,这样的一个值,某种意义上来说,当你打印变量的时候得到的这个值,其实它是一个列表,然后列表中的每一个值都是一个字典

from bs4 import BeautifulSoup
from lxml import etree
import requests gjc='SHKD-700' html = "http://www.btanv.com/search/"+gjc+"-hot-desc-1"#定义URL html = requests.get(html).content.decode('utf-8')#解码URL dom_tree = etree.HTML(html)#解析成xml links = dom_tree.xpath("//a[@class='download']")#在xml中定位节点,返回的是一个列表
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获取到的是标签文本--字符串
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)

最新文章

  1. 抓取代理IP
  2. 迟来的Android的Camera开发总结
  3. SQL collate
  4. RecyclerView(4)简单示例
  5. 让Eclipse和NetBeans共享同一个项目
  6. 剖析@weakify 和 @strongify
  7. 简易的highcharts公共绘图模块封装--基于.net mvc
  8. java_设计模式_装饰者模式_Decorator Pattern(2016-07-28)
  9. csv操作帮助类
  10. 使用FSharp 探索Dotnet图像处理功能2--均衡灰度
  11. vue 自定义指令directive
  12. 基于Ado.Net的日志组件
  13. java截取一个字符串正数或倒数某个特定字符前后的内容
  14. selenium操作浏览器窗口最大化和刷新
  15. (转)Debian 安装与卸载包命令
  16. app自动化测试Appium+python
  17. 【BZOJ1826】[JSOI2010]缓存交换(贪心)
  18. SpringMVC的controller层接收来自jsp页面通过&lt;a href=&quot;/user/userUpdateInfo/&gt;的中文乱码问题
  19. SQL Server错误处理
  20. jconsole远程连接超时问题解决方法

热门文章

  1. 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/
  2. eclipse JavaEE版"javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决办法
  3. 客户端-服务器端互动比较与原生实例(比较ajax,server-sent event,websocket/netsocket)
  4. 第一百四十六节,JavaScript,百度分享保持居中--下拉菜单
  5. 【BZOJ】1661: [Usaco2006 Nov]Big Square 巨大正方形(暴力)
  6. grep检索文本
  7. 分享一个Unity3D小作品,源码地址已公布在文章开头!
  8. SurvivalShooter学习笔记(七.玩家射击)
  9. 自定义字体TextView
  10. http://blog.csdn.net/v_july_v/article/details/6543438