在练习过程中 尝试对一个页面 table 信息进行收集,pandas 也可读取页面全部 table,但是想使用爬虫中 DOM 的 xpath 语法,对 DOM 节点元素进行筛选,也算是第一次练习,在获得 相应的 table 元素后,没有思路了,在 DOM 元素数组,string 、与 XML 或者 pandas 数据表之间 卡主了,想请教一下 下一步 如何优雅的处理,还望大家不吝赐教
实例如下:
import requests
from lxml import etree
url = 'http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3'
headers = {
"User-Agent" : "Mozilla\/5.0 (Windows NT 10.0; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/78.0.3904.108 Safari\/537.36"}
text = requests.post(url, headers=headers)
dom = etree.HTML(text.text) #将 web 页面文本信息解析为 HTML 文档
print(dom)
#通过 xpath 语法筛选 DO 文档中感兴趣的元素 此处返回该 id 下子节点 caption 属性为"返回数据说明"的 table 元素数组
tables = dom.xpath('//*[@id="mw-content-text"]/table[@caption="返回数据说明"]')
#下面开始 tables 数组处理 table 数组
for table in tables:
print(type(table))
print(etree.tostring(table))
实例如下:
import requests
from lxml import etree
url = 'http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3'
headers = {
"User-Agent" : "Mozilla\/5.0 (Windows NT 10.0; WOW64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/78.0.3904.108 Safari\/537.36"}
text = requests.post(url, headers=headers)
dom = etree.HTML(text.text) #将 web 页面文本信息解析为 HTML 文档
print(dom)
#通过 xpath 语法筛选 DO 文档中感兴趣的元素 此处返回该 id 下子节点 caption 属性为"返回数据说明"的 table 元素数组
tables = dom.xpath('//*[@id="mw-content-text"]/table[@caption="返回数据说明"]')
#下面开始 tables 数组处理 table 数组
for table in tables:
print(type(table))
print(etree.tostring(table))

