python小白学习记录 运用lxml的xpath解析html文件

 1 from lxml import etree
 2 text = "<div><p>nmsl</p><span>nmsl</span></div>"
 3 def htmlstree(text):
 4     html = etree.HTML(text)
 5     result = etree.tostring(html)
 6     print(result)
 7     return result.decode(‘utf-8‘)
 8 #解析html字符串并且会为标签自动加上<html><body></body></html>
 9 def parseetree():
10     parser = etree.HTMLParser(encoding=‘utf-8‘)
11     html = etree.parse("index111.html",parser=parser)
12     result = etree.tostring(html,encoding=‘utf-8‘).decode("utf-8")
13     print(result)
14 #解析xml 由于某写html标签会不全用普通的xml解析器会出错 如<br/>  所以要指定html解析器
15 if __name__ == ‘__main__‘:
16     parseetree()

以上为etree的使用范例

分别解析了html字符串和html文件


from lxml import etree
def parseetree():
    parser = etree.HTMLParser(encoding=‘utf-8‘)
    html = etree.parse("index111.html",parser=parser)
    trs = html.xpath("//a[@onclick][@id]")
    for tr in trs:
        result = etree.tostring(tr,encoding=‘utf-8‘).decode("utf-8")
        print(result)
def parseetree1():
    parser = etree.HTMLParser(encoding=‘utf-8‘)
    html = etree.parse("index111.html",parser=parser)
    tr = html.xpath("//a[@onclick][@id]")[3]
    result = etree.tostring(tr,encoding=‘utf-8‘).decode("utf-8")
    print(result)
if __name__ == "__main__":
    parseetree()
    print("***************")
    parseetree1()

以上为运用xpath来对html进行解析

以下是运行结果

附:https://www.w3school.com.cn/xpath/xpath_syntax.asp         xpath语法

原文地址:https://www.cnblogs.com/jswf/p/12287819.html

时间: 2024-08-29 18:56:05

python小白学习记录 运用lxml的xpath解析html文件的相关文章

python小白学习记录 多线程爬取ts片段

from lxml import etree import requests from urllib import request import time import os from queue import Queue import threading import re from multiprocessing import pool from urllib import request def download(urls): for index in range(0,1342): n =

python小白学习记录 scrapy 结合 selenium 使用自己的chrome浏览器

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile" 此条命令复制到命令行,打开端口为9222的浏览器 ,勿关闭 (此前应先配置环境变量 否则无chrome.exe此命令) chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", &qu

python 系统地学习记录

由头: python值得一学. 尝试一下写学习记录,看看效果. 1.记录一些不熟悉或者重要的知识点. 2.记录一些遇到的问题,标签 Question. 书:python基础教程(第2版) Chapter 1:基础知识 本章的内容熟悉即可. 比较重要的是字符串,单双引号转义,str,repr... Time 1.5 h  2015.8.31 23:09 版权声明:本文为博主原创文章,未经博主允许不得转载.

Python小白学习之路(四)——第一次练习题

写在前面: 今天下雪了呢!连着两天都没有更新学习记录. 我没有偷懒呢.做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了 连续一周早起,强大的内心也无法支撑我疲惫的身体 今天早起做了整理.加油哦(贵在坚持,一定要好好坚持下去) 1.执行 Python 脚本的两种方式 (1)进入python解释器,等待用户实时输入(2)python.exe + 执行文件的路径 2.简述位.字节的关系 1字节 = 8位 3.简述 ASCII,Unicode,utf-8.gbk 的关系 ASCII是最早美国

Python爬虫学习记录【内附代码、详细步骤】

引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先参考学习.传送门:请点击 本篇文章是自己同步跟着视频学习的记录,欢迎阅读~~~ 实验:新浪新闻首页爬虫实践 http://news.sina.com.cn/china/ 一.准备 浏览器内建的开发人员工具(以Chrome为例) Python3 requests 库 Python3 BeautifulSoup4

值得Python小白学习的书 简单推荐几本吧

于我个人而言,我很喜欢Python,当然我也有很多的理由推荐你去学python.我只说两点.一是简单,二是写python薪资高.我觉得这俩理由就够了,对不对.买本书,装上pycharm,把书上面的例子习题都敲一遍.再用flask,web.py等框架搭个小网站..完美...(小伙伴们有问到该学python2.7还是3.X,那我的答案是:目前大多数实际开发,都是用2.7的,因为实际项目开发有很多依赖的包,都只支持到2.7,你用3.X干不了活.那你能怎么办.所以不需要纠结.等3.X普及,你写的2.7代

简明 Python 教程--学习记录

注意,没有返回值的return语句等价于return None.None是Python中表示没有任何东西的特殊类型.例如,如果一个变量的值为None,可以表示它没有值.除非你提供你自己的return语句,每个函数都在结尾暗含有return None语句.通过运行printsomeFunction(),你可以明白这一点,函数someFunction没有使用return语句,如同:def someFunction():passpass语句在Python中表示一个空的语句块. 切片操作符中的第一个数(

Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式) rb:   以字节方式读文件 wb: 以字节方式写文件ab: 以字节方式追加文件 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,所以不能指定编码 1. rb #错误举例 f = open ('test1.py', 'rb', encoding = 'utf

python多线程学习记录

1.多线程的创建 import threading t = t.theading.Thread(target, args--) t.SetDeamon(True)//设置为守护进程 t.start(),启动线程 t.join(),阻塞当前线程,即使得在当前线程结束时,不会退出.会等到子线程结束之后才退出. 如果不加join语句,主线程不会等到子线程结束才结束,但却不会立即杀死该线程. 但是如果添加了SetDaemon(True),如果不加join,则会在主线程结束后马上杀死子线程. 如果join