zoukankan      html  css  js  c++  java
  • 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道题
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- focus on what you want to be
  • 相关阅读:
    操作MySQL数据库相关代码
    JSP(1)
    servlet(6)
    servlet(5)
    Java易错知识点(2)
    Java Web项目中解决中文乱码方法总结
    Java易错知识点(1)
    servlet(4)
    TCP协议之三次握手四次挥手
    day-4 map&filter
  • 原文地址:https://www.cnblogs.com/bamboozone/p/10333779.html
Copyright © 2011-2022 走看看