展开“查看更多”以获取Python中的隐藏列表

时间:2019-09-04 00:05:28

标签: python-3.x pycharm selenium-chromedriver expand

我正在从站点中检索数据,我只能在单击“查看更多”链接之前显示的免费课程部分中获得六个列表项。

我尝试了Seleniumm Webdriver,但遇到了我要克服的权限错误。还有其他方法可以在展开的视图中检索列表项。

url = 'https://www.udacity.com/school-of-programming'
data = requests.get(url)
soup = BeautifulSoup(data.text, 'html.parser')

classes = soup.find('ul', {'class':'course-list'})
class_names = classes.find_all('a', {'class':'course-list__item__link ng- 
star-inserted'})

class_list = []
for a in class_names[0:]:
    result = a.text.strip()
    class_list.append(result)

我想检索免费课程的完整列表。尝试使用Selenium时,出现以下错误:selenium.common.exceptions.WebDriverException:消息:'chromedriver_win32'可执行文件可能具有错误的权限。请参阅https://sites.google.com/a/chromium.org/chromedriver/home

1 个答案:

答案 0 :(得分:0)

数据在那里,您只需要另一个选择器。使用bs4 4.7.1,您可以使用:contains:has适当地定位

from bs4 import BeautifulSoup as bs
import requests

r = requests.get('https://www.udacity.com/school-of-programming')
soup = bs(r.content, 'lxml')
courses = [i.text for i in soup.select('.secondary-menu-item:not(:has(.nav-back))')]
print(courses)