前言

本篇继续lxml.etree学习,在线访问接口,通过接口返回的html,解析出想要的text文本内容

环境准备:

python 3.6

lxml

requets

定位目标

爬取我的博客首页https://www.cnblogs.com/yoyoketang/左侧栏个人基本信息

先f12抓包,找到该接口地址https://www.cnblogs.com/mvc/blog/news.aspx?blogApp=yoyoketang

# coding:utf-8
import requests
import urllib3
from lxml import etree
urllib3.disable_warnings() url = "https://www.cnblogs.com/mvc/blog/news.aspx?blogApp=yoyoketang"
r = requests.get(url, verify=False)
# print(r.text) dom = etree.HTML(r.content.decode("utf-8")) block = dom.xpath("//*[@id='profile_block']") # 打印提取到的结果
t = etree.tostring(block[0], encoding="utf-8", pretty_print=True)
print(t.decode("utf-8"))

运行结果

<div id="profile_block">昵称:<a href="https://home.cnblogs.com/u/yoyoketang/">上海-悠悠</a><br/>园龄:<a href="https://home.cnblogs.com/u/yoyoketang/" title="入园时间:2016-11-26">1年9个月</a><br/>粉丝:<a href="https://home.cnblogs.com/u/yoyoketang/followers/">1123</a><br/>关注:<a href="https://home.cnblogs.com/u/yoyoketang/followees/">72</a><div id="p_b_follow"/><script>getFollowStatus('95cb2f22-a6b3-e611-845c-ac853d9f53ac')</script></div>

提取内容

# coding:utf-8
import requests
import urllib3
from lxml import etree
urllib3.disable_warnings() url = "https://www.cnblogs.com/mvc/blog/news.aspx?blogApp=yoyoketang"
r = requests.get(url, verify=False)
# print(r.text) dom = etree.HTML(r.content.decode("utf-8")) block = dom.xpath("//*[@id='profile_block']") t1 = block[0].xpath('text()') # 获取当前节点文本元素
print(t1)
t2 = block[0].xpath('a') # 定位a标签 # 打印结果
for i, j in zip(t1, t2):
print("%s%s" % (i, j.text))

运行结果:

['昵称:', '园龄:', '粉丝:', '关注:']
昵称:上海-悠悠
园龄:1年9个月
粉丝:1123
关注:72

总结

1.获取当前节点标签名称.tag

print(block[0].tag)

div

2.获取当前节点文本

print(block[0].text)

昵称:

3.获取当前节点元素全部属性dict

print(block[0].attrib)

{'id': 'profile_block'}

4.获取当前节点某个属性

print(block[0].get("id"))

profile_block

5.所有子节点

for i in block[0].iter():
print(i.text)
profile_block
昵称:
上海-悠悠
None
1年9个月
None
1123
None
72
None
getFollowStatus('95cb2f22-a6b3-e611-845c-ac853d9f53ac')

6.获取当前节点下全部文本

print(block[0].xpath('text()'))

['昵称:', '园龄:', '粉丝:', '关注:']

7.获取本节点和子节点所有文本信息

print(block[0].xpath('.//text()'))

['昵称:', '上海-悠悠', '园龄:', '1年9个月', '粉丝:', '1123', '关注:', '72', "getFollowStatus('95cb2f22-a6b3-e611-845c-ac853d9f53ac')"]

8.获取父节点

print(block[0].getparent().tag)

body

作者:上海-悠悠 python自动化交流 QQ群:779429633

python笔记28-lxml.etree爬取html内容的更多相关文章

  1. Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析

    上次使用了BeautifulSoup库爬取电影排行榜,爬取相对来说有点麻烦,爬取的速度也较慢.本次使用的lxml库,我个人是最喜欢的,爬取的语法很简单,爬取速度也快. 本次爬取的豆瓣书籍排行榜的首页地 ...

  2. 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接

    [学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...

  3. python爬虫+词云图,爬取网易云音乐评论

    又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...

  4. Python爬虫实战二之爬取百度贴吧帖子

    大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...

  5. Python爬虫实战一之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...

  6. python爬虫学习01--电子书爬取

    python爬虫学习01--电子书爬取 1.获取网页信息 import requests #导入requests库 ''' 获取网页信息 ''' if __name__ == '__main__': ...

  7. 【Python数据分析】简单爬虫 爬取知乎神回复

    看知乎的时候发现了一个 “如何正确地吐槽” 收藏夹,里面的一些神回复实在很搞笑,但是一页一页地看又有点麻烦,而且每次都要打开网页,于是想如果全部爬下来到一个文件里面,是不是看起来很爽,并且随时可以看到 ...

  8. Python网络爬虫与如何爬取段子的项目实例

    一.网络爬虫 Python爬虫开发工程师,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页 ...

  9. 转 Python爬虫实战二之爬取百度贴吧帖子

    静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...

随机推荐

  1. JS格式化时间并比较

    JS格式化时间,然后进行比较.工作遇到的情况,然后网上找到的,记下来,下次用! </head> <body> <button onclick="myFuncti ...

  2. 32 从1到n整数中1出现的次数

    输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数. 主要思路:设定整数点(如1.10.100等等)作为位置点i(对应n的各位.十位.百位等等),分别对每个数位上有多少包含1的点进行分析 ...

  3. CCF CSP 201503-4 网络延时

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-4 网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机 ...

  4. Ionic Js十二:导航ion-nav-view

     ion-nav-view 当用户在你的app中浏览时,ionic能够检测到浏览历史.通过检测浏览历史,实现向左或向右滑动时可以正确转换视图. 采用AngularUI路由器模块等应用程序接口可以分为 ...

  5. spring 装配bean的三种方式

    这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...

  6. Date日期

    当我们只需要一个日期时,或从系统取得,或从数据库查询,都可以放入一个Date对象. 当我们需要对Date进行详细分析,获取其中的年月日分秒各个部分的信息,用Calendar类. 当我们需要对一个字符串 ...

  7. nyoj素数环

    素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简 ...

  8. 机器学习之路:python k均值聚类 KMeans 手写数字

    python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: ...

  9. Python 面向对象编程——访问限制

    <无访问限制的对象> 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑.但是,从前面Student类的定义来看(见:Py ...

  10. luoguP2231 [HNOI2002]跳蚤

    题目链接 bzoj1220: [HNOI2002]跳蚤 题解 根据裴蜀定理,不定方程的解为未知数的gcd,所以选取的n个数的gcd为1 那么n - 1个数保证没有公约数为m的约数,枚举质因数容斥 质因 ...