CSS selector or XPath that gets information between two i tags?(CSS选择器还是在两个i标记之间获取信息的XPath?)
本文介绍了CSS选择器还是在两个i标记之间获取信息的XPath?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试抓取价格信息,网站的HTML如下所示
<span class="def-price" datasku='....'>
<i>$</i>
"999"
<i>.00<i>
</span>
我想要999。(我不想要美元符号或.00)我目前有
product_price_sn = product.css('.def-price i').extract()
我知道这是错误的,但不确定如何修复它。你知道怎么弄到价格信息吗?谢谢!
推荐答案
您可以使用此//span[@class="def-price"]/text()
/text()
,而不是//text()
。否则,它将返回span标记内的所有文本节点。
或
此CSS选择器.def-price::text
。使用CSS选择器时,不要使用.def-price ::text
,它将返回所有文本节点,如XPath中的//text()
。
使用scrapy响应.xpath对象
from scrapy.http import Request, HtmlResponse as Response
content = '''<span class="def-price" datasku='....'>
<i>$</i>
"999"
<i>.00<i>
</span>'''.encode('utf-8')
url = 'https://stackoverflow.com/questions/62849500'
''' mocking scrapy request object '''
request = Request(url=url)
''' mocking scrapy response object '''
response = Response(url=url, request=request, body=content)
''' using xpath '''
print(response.xpath('//span[@class="def-price"]/text()').extract())
# outputs ['
', '
"999"
']
print(''.join(response.xpath('//span[@class="def-price"]/text()').extract()).strip())
# outputs "99"
''' using css selector '''
print(response.css('.def-price::text').extract())
# outputs ['
', '
"999"
']
print(''.join(response.css('.def-price::text').extract()).strip())
# outputs "99"
实际查看here
使用lxml html解析器
from lxml import html
parser = html.fromstring("""
<span class="def-price" datasku='....'>
<i>$</i>
"999"
<i>.00<i>
</span>
"""
)
print(parser.xpath('//span[@class="def-price"]/text()'))
# outputs ['
', '
"999"
']
print(''.join(parser.xpath('//span[@class="def-price"]/text()')).strip())
# outputs "999"
实际查看here
这篇关于CSS选择器还是在两个i标记之间获取信息的XPath?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:CSS选择器还是在两个i标记之间获取信息的XPath?
猜你喜欢
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 如何显示带有换行符的文本标签? 2022-01-01
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01