首页 > 解决方案 > 尝试将 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 中解决这个问题。

标签: pythonpython-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)

推荐阅读