Python 使用selenium和beautifulsoup进行网页抓取。。解析和选择按钮时出现问题

Python 使用selenium和beautifulsoup进行网页抓取。。解析和选择按钮时出现问题,python,html-parsing,selenium-chromedriver,Python,Html Parsing,Selenium Chromedriver,我正在尝试对以下网站“url=”进行web srape “。该网站包含8000多个数据。从这个页面我需要像公司名称和链接,加入日期和追随者的信息。在此之前,我需要通过单击按钮对followers列进行排序。然后单击“更多隐藏”按钮加载更多信息。页面最多可点击20次(隐藏更多)内容,此后不会加载更多信息。但我只能通过排序来获取顶级追随者的信息。这里我实现了click()事件,但它显示了错误 Unable to locate element: {"method":"xpath","selector"

我正在尝试对以下网站“url=”进行web srape “。该网站包含8000多个数据。从这个页面我需要像公司名称和链接,加入日期和追随者的信息。在此之前,我需要通过单击按钮对followers列进行排序。然后单击“更多隐藏”按钮加载更多信息。页面最多可点击20次(隐藏更多)内容,此后不会加载更多信息。但我只能通过排序来获取顶级追随者的信息。这里我实现了click()事件,但它显示了错误

Unable to locate element: {"method":"xpath","selector":"//div[@class="column followers sortable sortable"]"} #before edit this was my problem, using wrong class name
所以我需要在这里多睡一会儿吗?(试过了,但同样的错误)

我需要解析所有上述信息,然后访问这些网站的个人链接,刮内容div的html页面只

请给我建议一个方法

这是我当前的代码,我没有使用beautifulsoup添加html解析部分

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from time import sleep
from selenium import webdriver 
from bs4 import BeautifulSoup
#import urlib2
driver = webdriver.Chrome()
url='https://angel.co/life-sciences'
driver.get(url)
sleep(10)

driver.find_element_by_xpath('//div[@class="column followers sortable"]').click()#edited
sleep(5)
for i in range(2):
    driver.find_element_by_xpath('//div[@class="more hidden"]').click()
    sleep(8)

sleep(8)
element = driver.find_element_by_id("root").get_attribute('innerHTML')
#driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML")
#WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, 'more hidden')))
'''
results = html.find_elements_by_xpath('//div[@class="name"]')
 # wait for the page to load

for result in results:
    startup = result.find_elements_by_xpath('.//a')
    link = startup.get_attribute('href')
    print(link)
'''
page_source = driver.page_source

html = BeautifulSoup(element, 'html.parser')
#for link in html.findAll('a', {'class': 'startup-link'}):
#       print link

divs = html.find_all("div", class_=" dts27 frw44 _a _jm")
在我添加Followers click事件之前,上面的代码正在运行,并为我提供了html源代码

我的最终目标是将所有这五个信息导入CSV或xls文件,如公司名称、链接、加入日期、追随者数量和公司描述(在访问各自的链接后获得)

感谢您的帮助和评论。 这是我第一次使用python和selenium,没有什么困惑,需要指导


谢谢:-)

单击方法旨在模拟鼠标单击;它用于可单击的元素,如按钮、下拉列表、复选框等。您已将此方法应用于不可单击的
div
元素。诸如
div
span
frame
等元素用于组织HTML并提供字体装饰等


要使此代码正常工作,您需要识别页面中实际可单击的元素。

哎呀,我的键入错误或一些愚蠢的错误,我使用的div类名错误是“column followers sortable”,而我使用的是“column followers sortable selected”。:-(
现在,上面的工作非常好。但是有谁能指导我使用beautifulsoup HTML解析部分吗?

是的,但之前更多隐藏的div元素是可点击的。并且正在加载数据,但是更多隐藏的元素是可点击的,那么为什么不应该这样呢?我给了你一票,因为它帮助我从不同的角度查看我的代码。谢谢BillThanks,我正要删除这个。当我试着运行你的代码时,我在第一个
find\u element\u by\u xpath
上收到了一个异常。但是,根据你的评论,我现在知道为什么了。无论如何,你似乎教会了我一些东西。