首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >selenium.common.exceptions.InvalidSelectorException

selenium.common.exceptions.InvalidSelectorException
EN

Stack Overflow用户
提问于 2022-09-23 06:17:04
回答 1查看 58关注 0票数 1

为了用selenium刮爱彼迎,我编写了这个类来获取每个清单

代码语言:javascript
复制
def getListings():
listings = browser.find_elements(By.CLASS_NAME, 'c4mnd7m dir dir-ltr')
for listing in listings:
    link = listing.find_element(By.CLASS_NAME, '.ln2bl2p dir dir-ltr').get_attribute('href')
    price = listing.find_element(By.CLASS_NAME, '.a8jt5op dir dir-ltr').text
    print(link,price)

当我打电话给他时

代码语言:javascript
复制
>>> getListings()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/cat/Desktop/code/airbnb/webscraper.py", line 65, in getListings
    listings = browser.find_elements(By.CLASS_NAME, 'c4mnd7m dir dir-ltr')
  File "/Users/cat/Desktop/code/airbnb/env/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 888, in find_elements
    return self.execute(Command.FIND_ELEMENTS, {
  File "/Users/cat/Desktop/code/airbnb/env/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 428, in execute
    self.error_handler.check_response(response)
  File "/Users/cat/Desktop/code/airbnb/env/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 243, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
  (Session info: chrome=105.0.5195.125)
Stacktrace:
0   chromedriver                        0x00000001050b9a90 chromedriver + 3889808
1   chromedriver                        0x0000000105048b54 chromedriver + 3427156
2   chromedriver                        0x0000000104d3a238 chromedriver + 221752
3   chromedriver                        0x0000000104d3cdf8 chromedriver + 232952
4   chromedriver                        0x0000000104d3cc60 chromedriver + 232544
5   chromedriver                        0x0000000104d3ce94 chromedriver + 233108
6   chromedriver                        0x0000000104d6b254 chromedriver + 422484
7   chromedriver                        0x0000000104d94944 chromedriver + 592196
8   chromedriver                        0x0000000104d6054c chromedriver + 378188
9   chromedriver                        0x000000010508d2f8 chromedriver + 3707640
10  chromedriver                        0x0000000105090ea8 chromedriver + 3722920
11  chromedriver                        0x00000001050973d8 chromedriver + 3748824
12  chromedriver                        0x00000001050919a8 chromedriver + 3725736
13  chromedriver                        0x000000010506cde8 chromedriver + 3575272
14  chromedriver                        0x00000001050abd1c chromedriver + 3833116
15  chromedriver                        0x00000001050abe84 chromedriver + 3833476
16  chromedriver                        0x00000001050c0210 chromedriver + 3916304
17  libsystem_pthread.dylib             0x00000001afa5426c _pthread_start + 148
18  libsystem_pthread.dylib             0x00000001afa4f08c thread_start + 8

不知道为什么我选的课程不起作用。这似乎是正确的课程。我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-23 07:47:09

CLASS_NAMEc4mnd7m dir dir-ltr一样(有空格)不起作用,它应该是一个CSS_SELECTOR

移除空格和放置.将完成这项工作。

有效代码更改:

代码语言:javascript
复制
listings = browser.find_elements(By.CSS_SELECTOR, '.c4mnd7m.dir.dir-ltr')

如果类名带有空格,则必须进行类似的更改。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73823678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档