python - 如何找到 HTML 标记的标题属性的 Xpath 并打印所述标题的文本
问题描述
我正在使用 pythons scrapy 库。我希望能够使用 Xpath 选择器从以下 html 代码中抓取<h1>
'属性中包含的文本。title
<h1>
<a href="https://www.facebook.cpm/" title="Go to Facebook home">
<i class="fb_logo img sp_z3EmYTfbUvU_1_5x sx_91465b">...</i>
</a>
</h1>
这是我已经尝试过的,但它不起作用。如何使它起作用?
response.xpath('//h1/a/title()').extract()
我需要的数据如下:
"Go to Facebook home"
解决方案
在 scrapy 中使用选择器时,您应该Selector
首先导入 scrapy,如下所示:
from scrapy.selector import Selector
现在在 scrapy 中使用 xpath 的正确方法是使用Selector
该类,如下所示:
response = '''<h1>
<a href="https://www.facebook.cpm/" title="Go to Facebook home">
<i class="fb_logo img sp_z3EmYTfbUvU_1_5x sx_91465b">...</i>
</a>
</h1>'''
title = Selector(text=response).xpath('//h1/a/@title').extract()
这将返回一个列表对象:
['Go to Facebook home']
现在您可以使用列表索引将文本作为字符串获取:
title[0]
我强烈建议阅读scrapy docs,尤其是关于选择器的文档,甚至还可以了解xpath。
推荐阅读
- mysql - ERD:仅当实体 1 具有从主键实体 2 标识的外键时,两个实体之间的关系才会存在吗?
- ios - 传递给另一个 ViewController 时重置变量
- python - 运行更改名称的功能时如何修复文件被删除
- php - php 7.2 上的连续命令 ssh2
- php - 在 PHP 中将 MySQL 输出显示为行而不是列
- php - Laravel 5.8,PHP中的validate()和validated()函数有什么区别?
- machine-learning - 在真实主题输入/输出上训练神经网络,使其行为与主题相似
- windows - Windows schtasks 无法创建日志文件
- azure - Azure 流氓资源吃掉了我所有的订阅津贴
- python - 使用类名、css-selector 和 xpath 从网站中查找元素