前言本篇继续lxml.etree学习,在线访问接口,通过接口返回的html,解析出想要的text文本内容 定位目标爬取我的博客首页https://www.cnblogs.com/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">昵称: 提取内容# 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
div 2.获取当前节点文本
昵称: 3.获取当前节点元素全部属性dict
{'id': 'profile_block'} 4.获取当前节点某个属性
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.获取当前节点下全部文本
['昵称:', '园龄:', '粉丝:', '关注:'] 7.获取本节点和子节点所有文本信息
['昵称:', '上海-悠悠', '园龄:', '1年9个月', '粉丝:', '1123', 8.获取父节点
body
|
|