Pycharm学习python路

  • import 模块之后是灰色的表明没有被引用过
  • lxml找不到的话用anaconda prompt :pip uninstall lxml 重新安装
  • 用request时,写的reg无法正确解析网页,先print然后再写reg
  •  pyquery 的attr()获取不到值,因为只获取第一个值,具体参照https://www.cnblogs.com/airnew/p/10056551.html

访问节点属性:
使用attr()方法访问节点的属性:

from pyquery import PyQuery as pq li = pq('<li id="test1" class="test1"></li><li id="test2" class="test2"></li>')('li') print(li.attr("id"))

运行结果:

test1

上面的代码中有两个id不同的li节点,但是attr()方法只取第一个li节点的id属性值,而不取第二个,我们把上面的代码修改下,把第一个li节点的id属性去掉,attr方法是否只取第一个复合条件节点的属性值:

from pyquery import PyQuery as pq li = pq('<li class="test1"></li><li id="test2" class="test2"></li>')('li') print(li.attr("id"))

运行结果:

None

第一个li节点没有id属性,因此返回结果为None,所以可见,attr()方法返回的是第一个节点的属性值。

那要取多个li节点的属性值,要怎么做呢?这就要结合items()方法来实现。items()方法是返回的节点的生成器generator object PyQuery.items

from pyquery import PyQuery as pq li = pq('<li id="test1" class="test1"></li><li id="test2" class="test2"></li>')('li') print(li.items()) for item in li.items(): print(item.attr("id"))

运行结果:

<generator object PyQuery.items at 0x0000027F26082728> test1 test2
  • https://scrapingclub.com/ 用scrapy解决10道题

 

转载于:https://www.cnblogs.com/bamboozone/p/10333779.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值