python之lxml(xpath)
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)的更多相关文章
- python中使用XPath
XPath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...
- python中使用XPath笔记
XPath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...
- python爬虫:XPath语法和使用示例
python爬虫:XPath语法和使用示例 XPath(XML Path Language)是一门在XML文档中查找信息的语言,可以用来在XML文档中对元素和属性进行遍历. 选取节点 XPath使用路 ...
- Python爬虫之xpath语法及案例使用
Python爬虫之xpath语法及案例使用 ---- 钢铁侠的知识库 2022.08.15 我们在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数 ...
- 非常全的一份Python爬虫的Xpath博文
非常全的一份Python爬虫的Xpath博文 Xpath 是 python 爬虫过程中非常重要的一个用来定位的一种语法. 一.开始使用 首先我们需要得到一个 HTML 源代码,用来模拟爬取网页中的源代 ...
- Windows下Python安装lxml
1.下载easy_install的安装包,下载地址:https://pypi.Python.org/pypi/setuptools 我是Windows7,所以直接下载Windows(Simplify) ...
- requests+lxml+xpath爬取豆瓣电影
(1)lxml解析html from lxml import etree #创建一个html对象 html=stree.HTML(text) result=etree.tostring(html,en ...
- python爬微信公众号前10篇历史文章(3)-lxml&xpath初探
理解lxml以及xpath 什么是lxml? python中用来处理XML和HTML的library.与其他相比,它能提供很好的性能, 并且它支持XPath. 具体可以查看官方文档->http: ...
- Python 通过lxml遍历html xpath
#coding:utf-8 ''' Created on 2017年10月9日 @author: li.liu ''' from selenium import webdriver from lxml ...
随机推荐
- 要学JavaScript!进来看吧,反正不花钱!~
有一段时间没有更新自己的博客了,今天终于可以抽出时间和大家分享一下关于JavaScript了.有很多朋友在问我没有接触过会不会很难,不好理解 其实JavaScript的基本语法和Java的基本语法很相 ...
- Unity3D ShaderLab 漫反射卷积光照模型
Unity3D ShaderLab 漫反射卷积光照模型 漫反射卷积[Diffuse convolution]是一个模糊立方体的过程,它保留了立方图的整体光照强度,只模糊了细节. 这种效果在我们要活得一 ...
- Unity3D ShaderLab 使用渐变纹理着色
Unity3D ShaderLab 使用渐变纹理着色 在我们编写着色器的过程中,还可以通过渐变纹理来控制漫反射的光照颜色.这种做法同样在VALVE的军团要塞2中及其流行. 前期,请准备一个渐变色的图片 ...
- Fix VNC Desktop Sharing on Ubuntu Desktop 14.04
Solution 1 sudo apt-get -y install dconf-tools dconf write /org/gnome/desktop/remote-access/require- ...
- 常用http请求状态码含义
1** ----临时响应 2** ----成功响应 3** ----重定向 4** ----请求错误 5** ----服务器错误 常用的几个如下: 200---服务器成功返回网页 301-- ...
- 传智springMVC笔记
springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...
- hadoop shell 详解
概述 所有的hadoop命令均由bin/hadoop脚本引发.不指定参数运行hadoop脚本会打印所有命令的描述. 用法: hadoop [--config confdir] [COMMAND] ...
- java项目上各种小问题
md,出现好几次这种问题,还得上百度? 以此为证,再出现这种问题我就不信想不起来怎么解决!!!----清除不存在jar包 ok,第二个问题: 每个类上有无数个红叉,然而代码并没有问题 解决方案:run ...
- Pythono 实现 Permutation
不管在R 还是python中,都有现成的函数来轻而易举地进行全排列(Permutation).无序排列等等.今天想要尝试一下使用自己写代码来实现全排列. 首先,我采用的算法如下: 对于一个数列 i.e ...
- ANTLR3完全参考指南读书笔记[05]
前言 仅生成给出true/false的识别器是没有多大用处的,自然的就有在识别过程中遇到某一结构时执行一段代码.存储该结构中信息的想法. ANTLR提供了在文法中嵌入属性和动作超级混合“文法”,可以生 ...