这段时间做了一些通过网络搜索获取相关信息的事情,实质就是通过搜索词语、短语,获得包含这些词语短语的句子,将句子用于模型的增量学习;目前使用的搜索网页是bing(因为百度搜索结果很多是百家号,然后程序访问百家号网页会要求人工验证),搜索出来的网页使用etree进行构建,并搜索;目前获取到的用法有:
1. 构建etree
from lxml import etree
page = etree.HTML(text)
text: 也可以为其中的某个元素对应的str,并不一定完整需要html
2. 查找数据
# 从根目录开始查找
str1 = u'/html/body/div[@id="b_content"]/main/ol[@id="b_results"]'
str2 = u'/li[@class="b_algo"]/div/a'
infos = page.xpath(str1 + str2)
# 查找所有的div
str3 = u"//div"
infos = page.xpath(str3)
对于一个element, 其中的属性查看,比如“href”、“target”等
if "href" in info.attrib:
print(info.attrib["href"])
3. element转化为str
有时候需要把找到的代码块转化为str,获取相对应标签等等,此时,可能需要把其转化为str
text = etree.tostring(info,encoding="utf-8").decode()
4. 获取文本
比如有如下的元素:
<span style="font-size: 26.25pt;">继续把党史总结学习教育宣传引向深入</span>
对应为info,获取中间的文字,使用info.text即可