代码小白liu 发表于 2021-5-19 20:23:17

利用selenium异步爬取的问题

from selenium import webdriver
import time
def main():
    b=webdriver.Chrome()
    b.get('http://www.baidu.com')
    time.sleep(5)
    b.quit()
if __name__ == '__main__':
    main()上边这段代码运行是可以的


from selenium import webdriver
import time

def getHtml():
    url = "http://www.loveshang.com/"
    # chromedrive = r"C:\Program Files (x86)\Google\Chrome\Application"
    browser = webdriver.Chrome()
    browser.get(url)
    for num in range(3):# 加载更多(点击事件)
      #<a href="javascript:;" id="more" class="news_more tc">加载更多</a>
      browser.find_element_by_class_name("news_more tc").click()

      time.sleep(3)
    html = browser.page_source# 获取网页源代码
    print(html)

if __name__ == '__main__':
    getHtml()这段代码允许就会报错:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".news_more tc"}
(Session info: chrome=90.0.4430.212


我自己百度下说是chormdriver和chorm版本不一致 ,但是我的浏览器版本找不到一模一样版本的chormdriver
目前chorm版本:90.0.4430.212   chormdriver版本:90.0.4430.24/

应该怎么解决那


南归 发表于 2021-5-19 20:48:15

这个应该是选择器出错了,不是webdriver版本的问题
因为你第一个代码能成功运行

代码小白liu 发表于 2021-5-19 21:12:29

南归 发表于 2021-5-19 20:48
这个应该是选择器出错了,不是webdriver版本的问题
因为你第一个代码能成功运行

那应该如何解决那

YunGuo 发表于 2021-5-19 21:50:38

选择器写错了,去掉 ' tc '
browser.find_element_by_class_name("news_more").click()

南归 发表于 2021-5-20 10:15:06

如果class里面有空格,是指有两个class名,news_more和tc
页: [1]
查看完整版本: 利用selenium异步爬取的问题