使用关键词“爬虫处理‘显示更多’按钮”搜索时,网上出现最多的方法就是“使用selenium点击‘显示更多’按钮”,于是便按照网上的一些教程开始编写。
主要参考:
https://www.cnpython.com/qa/731745Python使用selenium模拟点击(一) - 混在园子里的底层码农 - 博客园
之前参考学长代码的时候接触过selenium,所以关于一些导入selenium包,以及使用chromedriver我这边基本已经实现了,可以直接编写代码了,关于准备工作可以参考网上的其他一些教程。
首先是加载驱动,然后得到网页的源码:
chromedriver_path = 'D:/A_study/chromedriver.exe' # 将executable_path改成了绝对路径
driver = webdriver.Chrome(executable_path=chromedriver_path)
driver.get(url)
soup = BeautifulSoup(driver.page_source
然后根据得到的源码找到需要点击的按钮:
button = driver.find_element_by_css_selector("footer div.button a")
button.click()
我这里是根据css选择器进行定位的,当然也可以根据id等其他属性进行定位,具体做法可以参考网上的其他一些教程。
这里需要注意的一点就是“find_element_by_ ”,这里如果使用的是“find_elements_by_” 会得到一个列表,如果直接根据得到的结果进行.click(),这时会报“'list' object has no attribute 'click'”的错误。此错误的解决方法参考教程:'list' object has no attribute 'click'问题_hyb648115428的博客-CSDN博客
以上就可以实现点击事件。