【发布时间】:2021-07-04 15:58:49
【问题描述】:
我试图抓取的页面有这样的元素。我想在 div 中获取整个文本。
<div class="OrganicTitle-LinkText organic__url-text">
<b>Bitcoin</b> - Open source P2P money
</div>
我当前使用的选择器是 response.css("div.OrganicTitle-LinkText.organic__url-text::text").get()
但是好像忽略了<b></b>里面的文字
我得到的结果是 - Open source P2P money
我只想使用 css 选择器获取整个文本(因为更改为 xpath 需要大量代码更改)
即使在结果中提取了<b></b> 标签也不会出现问题,因为它们可以通过使用正则表达式轻松删除。
任何帮助将不胜感激。
【问题讨论】:
-
我的回答解决了你的问题吗?
-
这应该可以
' '.join(response.css("[class^='OrganicTitle-LinkText'] ::text").getall()).strip() -
要获取以下所有文本元素,您需要在
::text之前添加一个空格。然后你可以join和strip得到你想要的文本:"".join(response.css(".organic__url-text ::text").getall()).strip() -
@SIM,您的解决方案有效。谢谢!
-
@tomjn,您的解决方案也有效。也谢谢你。
标签: web-scraping scrapy css-selectors web-crawler