python - 尝试将 CSS 选择器与 requests-HTML 一起使用时出错
问题描述
我有一个代码:
from requests_html import HTMLSession
url = 'https://finance.yahoo.com/quote/COMP'
s = HTMLSession()
r = s.get(url)
#Both of these give the same error:
name = r.html.find('h1.D(ib) Fz(18px)', first = True).text
name = r.html.find('h1.D(ib).Fz(18px)', first = True).text
print(name)
这会导致以下错误:
cssselect.parser.SelectorSyntaxError: Expected selector, got <DELIM '(' at 4>
有时在完整的类名中有一个空格的地方加一个点是可行的(名称见第二个版本)。我不认为我在遵循文档后犯了错误,但在我看来,这里的类名中的括号有问题。如果我使用 Beautifulsoup,我可以解决这个问题,但我真的很想了解如何在 Requests-HTML 中解决这个问题。
解决方案
您需要转义括号:
from requests_html import HTMLSession
url = 'https://finance.yahoo.com/quote/COMP'
s = HTMLSession()
r = s.get(url)
name = r.html.find('h1.D\(ib\)', first=True).text
print(name)
输出:
Compass, Inc. (COMP)
推荐阅读
- electron - 自定义框架菜单栏 - 电子
- jquery - 如何在锚链接上使用ajax
- firebase - 访问当前位置并将其发送到 firebase
- javascript - 我想为 Azure IoT Hub 或 Cosmos 创建一个包含嵌套对象的 JSON 字符串
- laravel - redis中有哪些高级缓存策略
- xcode - 错误 无法构建 iOS 项目。我们运行了“xcodebuild”命令,但它以错误代码 65 退出
- php - 为什么 PHP pack("h*", 0x41) 函数打印错误的 ASCII 文本
- laravel - Laravel 在 User 类中使用外部数据
- javascript - 模态正文内容不显示
- scala - 如何调用使用 MTL 和 Parallel 的函数?