我正在尝试从网站上的许多span标签中抓取一些文本,但没有得到清晰的文本,我们将不胜感激!
以下是网址:
https://www.example.com
这就是我正在尝试的
response.xpath('//div[@class="agency-header__address"]').extract_first()
预期输出:
Level 18, 25 Bligh Street, SYDNEY, NSW 2000
答案 0 :(得分:2)
您需要获取给定xpath中所有内容的xpath text()
。
例如:
result = response.xpath('//div[@class="agency-header__address"]//text()').extract()
这将返回多个span
元素,因此您必须使用extract()
。
然后,您可以根据需要加入并清理它,例如:
''.join(result).replace('\xa0', ' ')
答案 1 :(得分:2)
您可以通过提取div
的字符串表示形式来获取所需的文本:
response.xpath('string(//div[@class="agency-header__address"])').extract_first()
答案 2 :(得分:1)
此任务有一个有用的库(来自Scrapy的创建者),您应该尝试一下:https://github.com/TeamHG-Memex/html-text
import html_text
i_need_text=response.xpath('//div[@class="agency-header__address"]').extract_first()
html_text.extract_text(i_need_text)
出[4]:“新南威尔士州2000年,悉尼,布莱街25号18楼”