bs4确实没这个好用,bs4的树太复杂

lxml很好

定位非常好

详细解说在注释里面有了

 #!/usr/bin/python3.4
# -*- coding: utf-8 -*- from lxml import etree
import urllib.request # 目标网址的html可以看一下
url = "http://www.1kkk.com/manhua589/"
# 解析网址
data = urllib.request.urlopen(url).read()
# 解码
html = data.decode('UTF-8','ignore') page = etree.HTML(html.lower()) # 查找的目标样式如下
"""
...
<ul class="sy_nr1 cplist_ullg">
<li>
<a href="/vol1-6871/" class="tg">第1卷</a>(96页)</li>
<li>
<a href="/vol2-6872/" class="tg">第2卷</a>(90页)</li>
<li>
<a href="/vol3-6873/" class="tg">第3卷</a>(95页)</li>
<li>
<a href="/vol4-6874/" class="tg">第4卷</a>(94页)</li>
<li>
<a href="/vol5-6875/" class="tg">第5卷</a>(95页)</li>
...
""" # 找到ul下li下的a中的href
hrefs = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/a/@href') # 找到<a>...</a>之间的文字
hrefnames = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/a/text()') # 找到页数
hrefpages = page.xpath('//ul[@class="sy_nr1 cplist_ullg"][2]/li/text()') for href in hrefs:
# 打印出来
print(href)

打印结果:

 /vol1-6871/
/vol2-6872/
/vol3-6873/
/vol4-6874/
/vol5-6875/
/vol6-6876/
/vol7-6877/
/vol8-6878/
/vol9-6879/
/vol10-6880/
/vol11-23456/
/vol12-23457/
/vol13-23695/
/vol14-28326/
/vol15-31740/
/ch145-149-33558/
/ch150-33559/
/ch151-197255/
/ch152-33560/
/ch153-33561/
/ch154-33562/
/ch155-33563/
/ch156-33564/
/ch157-33565/
...

python之lxml(xpath)的更多相关文章

  1. python中使用XPath

    XPath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...

  2. python中使用XPath笔记

    XPath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...

  3. python爬虫:XPath语法和使用示例

    python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...

  4. Python爬虫之xpath语法及案例使用

    Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...

  5. 非常全的一份Python爬虫的Xpath博文

    非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...

  6. Windows下Python安装lxml

    1.下载easy_install的安装包,下载地址:https://pypi.Python.org/pypi/setuptools 我是Windows7,所以直接下载Windows(Simplify) ...

  7. requests+lxml+xpath爬取豆瓣电影

    (1)lxml解析html from lxml import etree #创建一个html对象 html=stree.HTML(text) result=etree.tostring(html,en ...

  8. python爬微信公众号前10篇历史文章(3)-lxml&xpath初探

    理解lxml以及xpath 什么是lxml? python中用来处理XML和HTML的library.与其他相比,它能提供很好的性能, 并且它支持XPath. 具体可以查看官方文档->http: ...

  9. Python 通过lxml遍历html xpath

    #coding:utf-8 ''' Created on 2017年10月9日 @author: li.liu ''' from selenium import webdriver from lxml ...

随机推荐

  1. 数位dp-POJ-3252-Round Numbers

    最近一直在看书和博客,即使做出几道题来也是看别人题解写的,感觉没自己的东西,所以很久没更新博客 看了很多数位dp的题和题解,发现数位dp题是有固定的模版的,并且终于自己做出来一道. 我觉得用记忆化搜索 ...

  2. IOS 封装类的时候注释格式,使用的时候可以想官方库一样快捷显示

    /** @brief 详情 @param 参数 @note 注意 @return 返回值类型 @code 这里写例题代码 @endcode @see 相似的方法参考 */

  3. NSIS

    NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System) 的缩写,它是一个免费的 Win32 安装.卸载系统,采用了简洁高效的脚 ...

  4. 分布式系统之CAP理论杂记[转]

    分布式系统之CAP理论杂记 http://www.cnblogs.com/highriver/archive/2011/09/15/2176833.html 分布式系统的CAP理论: 理论首先把分布式 ...

  5. 转:去掉DataTable重复数据(程序示例比较)

    using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.T ...

  6. 定制x86 Linux系统

    /************************************************************************************* * 定制x86 Linux ...

  7. Iptables 规则 一些简单实例和详细介绍

    设定规则 iptables -p INPUT DROP iptables -p OUTPUT ACCEPT iptables -p FORWARD DROP 1.防止外网用内网IP欺骗 iptable ...

  8. GFF format

    后记: ************************************************************************ 在使用cufflinks和cuffmerge中 ...

  9. win7 一些快捷系统工具命令

    1.cleanmgr: 打开磁盘清理工具 2.compmgmt.msc: 计算机管理 3.conf: 启动系统配置实用程序 4.charmap: 启动字符映射表 5.calc: 启动计算器 6.chk ...

  10. CentOS终端界面登入Linux

    上述图片中,前两行为CentOS的版本信息,其内容来自于/etc/issue这个档案中. 后三行:www login:其中www表示主机名(设主机名为www.vbird.tsal),主机名显示通常只取 ...