使用前需安装lxml库,打开CMD管理员命令,输入
pip install lxml
from lxml import etree
html = '''
按F12或右键点审查元素,在需要获取的文本内容上一个标签右键复制-复制元素,粘贴到此处
'''
# 将HTML字符串转换为Element对象
root = etree.HTML(html)
# 使用XPATH获取文本内容
text = root.xpath('//div[@id="timucontent"]/h2/text()')[0] #[0]表示只获取第一个标签内的元素
print(text) # 输出:这是一段文本内容
# 使用XPATH获取选项文本
sl_text = root.xpath('//label')
for p in sl_text: #循环输出多个标签内容
print(p.text)
# 输出:这是一个选项
下面看一个实际的案例,在网上查找资料复制内容出现下面的情况,找了半天也没找到好的办法,最终试着写个程序,问题顺利解决。
当遇到以上情况时,你是不是束手无策,其实只要用6行python代码就可以搞定,而且可以重复使用,是不是很方便 .注意:html里面的是文本内容,自己按照实际需要复制元素放进来就可以了,这里只是举个栗子,可以运行下面程序加深理解。
from lxml import etree
html = '''
<div class="content">
<div class="ad_top_left">
<script>ad_top_left();</script>
</div>
<h3 style="color: red; text-align: center;"> 文章标题</h3>
<p> 1、内容1</p>
<p> 2、内容2</p>
<p> 3、内容3</p>
<div class="ad_bot_left">
<script>ad_bot_left();</script>
</div>
</div>
'''
# 将HTML字符串转换为Element对象
root = etree.HTML(html)
# 使用XPATH获取文本内容
s_text = root.xpath('//div[@class="content"]/p/text()')
print(s_text) # 输出:这是一段文本内容
for p in s_text:
print(p)
# 输出:这是一个选项