>我正在从站点检索数据,我只能在单击"查看更多"链接之前获取免费课程部分中显示的六个列表项。
我已经尝试过Seleniumm网络驱动程序,但我收到我试图克服的权限错误。 是否有任何其他方法可以在展开的视图中检索列表项。
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
数据在那里,你只需要另一个选择器。在 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)