我正在从站点中检索数据,我只能在单击“查看更多”链接之前显示的免费课程部分中获得六个列表项。
我尝试了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
答案 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)