为了用selenium刮爱彼迎,我编写了这个类来获取每个清单
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)当我打电话给他时
>>> 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不知道为什么我选的课程不起作用。这似乎是正确的课程。我遗漏了什么吗?

发布于 2022-09-23 07:47:09
CLASS_NAME和c4mnd7m dir dir-ltr一样(有空格)不起作用,它应该是一个CSS_SELECTOR。
移除空格和放置.将完成这项工作。
有效代码更改:
listings = browser.find_elements(By.CSS_SELECTOR, '.c4mnd7m.dir.dir-ltr')如果类名带有空格,则必须进行类似的更改。
https://stackoverflow.com/questions/73823678
复制相似问题