首页 > 编程语言 >数据采集技术之在Python中Libxml模块安装与使用XPath

数据采集技术之在Python中Libxml模块安装与使用XPath

时间:2023-02-07 14:36:49浏览次数:51  
标签:XPath xpath Python redice Libxml nodes div 安装 email


为了使用XPath技术,对爬虫抓取的网页数据进行抽取(如标题、正文等等),之后在Windows下安装libxml2模块(安装后使用的是Libxml模块),该模块含有xpath。

准备

需要的软件包:

安装

Python2.7的安装这里不再赘述

lxml的安装,直接运行exe,会自动找到py27的目录进行安装

使用XPath抽取

下面用一个实例来验证,程序来自redice’s Blog的文章:

​libxml2库的安装,xpath的使用​

#coding:utf-8

import codecs
import sys
#不加如下行,无法打印Unicode字符,产生UnicodeEncodeError错误。?
sys . stdout = codecs . lookup ( 'iso8859-1' ) [ - 1 ] ( sys . stdout )

from lxml import etree

html = r '' '<div>
<div>redice</div>
<div id="email">[email protected]</div>
<div name="address">中国</div>
<div>http://www.redicecn.com</div>
</div>' ''

tree = etree . HTML ( html )

#获取email。email所在的div的id为email
nodes = tree . xpath ( "//div[@id='email']" )
print nodes [ 0 ] . text

#获取地址。地址所在的div的name为address
nodes = tree . xpath ( "//div[@name='address']" )
print nodes [ 0 ] . text

#获取博客地址。博客地址位于email之后兄弟节点的第二个
nodes = tree . xpath ( "//div[@id='email']/following-sibling::div[2]" )
print nodes [ 0 ] . text

 

运行结果:

[email protected]
中国
​​​http://www.redicecn.com​


标签:XPath,xpath,Python,redice,Libxml,nodes,div,安装,email
From: https://blog.51cto.com/peishuai/6042079

相关文章

  • python静态web服务器如何实现
    1、编写TCP服务器程序。2、获取浏览器发送的http请求消息数据。3、读取固定的页面数据,将页面数据组装成HTTP响应消息数据并发送给浏览器。4、HTTP响应报文数据发送完成后,关......
  • python教学之类
    面向对象(pro)C++PYjavarubygo面向过程C直接操作内存对象=包含了很多不同的“元素”的一个物体性质集合体封装性每一个对象封装了不同的对象面向对象的思......
  • Python中Gevent的使用
    1、可以通过gevent轻松实现并发同步或异步编程。gevent中使用的主要模式是Greenlet,它是以C扩展模块的形式访问Python的轻量级协程。2、Greenlet全部运行在主程序操作系统的......
  • Python使用协程的缺点
    1、多核资源不能使用:协程的本质是单线程,它不能同时使用单个CPU的多核、协程。2、在多CPU上运行程需要与过程配合。当然,每天编写的大多数应用程序都没有必要。除非是cpu密集......
  • Python生成文件md5校验值函数
    linux有个命令叫做md5sum,能生成文件的md5值,一般情况下都会将结果记录到一个文件中用于校验使用,比如会这样使用:[crazyant@localhostPythonMd5]$moresample_filewww......
  • Python 安装
     ​安装Python环境在你开始学习Python之前最重要的是——对,你要安装Python环境。许多初学者会纠结应该选择2.x版本还是3.x版本的问题,在我看来,世界变化的速度在变......
  • Python模块之 urlparse 拆分 url 网址链接
    作用:拆解url网址链接,协议、网络位置、路径等必要操作:py2:>>>pipinstallurllib-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com>>>fro......
  • 【Appium_python】启动app,出现多次打开关闭导致失败问题,driver用单例模式(_new_)进行解
    运用多设备,启动app多次出现打开又关闭问题,查看后是多次对driver进行实例化,就用单例的模式进行解决。单例模式(SingletonPattern)目的就是保证一个类仅有一个实例,每一次执行......
  • Python openpyxl使用教程
    1.安装openpyxl组件pipinstallopenpyxl-ihttps://mirrors.aliyun.com/pypi/simple/新建Excel#coding=utf-8fromopenpyxlimportWorkbookwb=Workbook()#......
  • python打印中文
    python3中将json.dumps()结果显示为中文解决json.dumps()这个方法是没有encoding这个参数的,要想将默认的ascii字符改为中文,应该将ensure_asciii设为Falseprint(json.du......