web-scraping - Scrapy 无法提取文本
问题描述
我正在使用学习scrapy,但我停留在我使用的网站是https://wordpress.org/plugins/tags/category-image/
我正在提取网页上的某些文本我使用休闲命令
fetch("https://wordpress.org/plugins/tags/category-image/")
response.xpath('//*[@class="plugin-author"]').extract_first()
输出 :
'<span class="plugin-author">\n\t\t\t<i class="dashicons dashicons-admin-users"></i> Muhammad Said El Zahlan\t\t</span>'
我需要提取 Muhammad Said El Zahlan
response.xpath('//*[@class="plugin-author"]/text()').extract_first()
输出:
'\n\t\t\t'
response.xpath('//*[@class="plugin-author"]/@span/text()').extract_first()
response.xpath('//*[@class="plugin-author"]/@span').extract_first()
response.xpath('//*[@class="plugin-author"]/@text()').extract_first()
给我一些线索
解决方案
这是你的 xml 树:
<span class="plugin-author">
<i class="dashicons dashicons-admin-users">
</i> Muhammad Said El Zahlan\t\t
</span>
换句话说,你想要span/i/text()
:
response.xpath('//span[@class="plugin-author"]/i/text()').extract()
或span//text
:(跨度下的任何文本)
response.xpath('//span[@class="plugin-author"]//text()').extract()
推荐阅读
- adobe-illustrator - 多个用户打开同一个文件并覆盖工作
- sqlite - 如何获取 ATTACHED 数据库的当前 sqlite 数据库大小
- angular - Observables Angular 6
- boost - BOOST_DATA_TEST_CASE 的自定义名称
- android-studio - java.lang.NumberFormatException:对于输入字符串:kotlin 中的“16000$”
- laravel - Laravel 存储方法 allDirectories() 不会从 FTP 服务器递归返回目录
- python - 为什么 randn 并不总是具有 0 的均值和 1 的方差?
- azure-devops - 我应该多久部署一次基础架构即代码 (IaC)
- intellij-idea - PhpStorm 中的格式化代码不起作用,因为我需要它才能工作
- apache-flink - JSONDeserializationSchema 无法解析为类型