2017-08-19 1 views
0

私はこのwebsiteを使ってPDFスライドをPythonとセレニウムを使ってダウンロードしようとしていますが、スライドへのリンクはスクリプトをロードした後にしか表示されません。私は、javascriptがロードされるのを待ってみましたが、まだ何も見つけられません。何か案は?セレンはPDFリンクのHTMLを取得しません

import os, sys, time, random 
import requests 
from selenium import webdriver 
from bs4 import BeautifulSoup 

url = 'https://mila.umontreal.ca/en/cours/deep-learning-summer-school-2017/slides' 

browser = webdriver.Chrome() 
browser.get(url) 
browser.implicitly_wait(3) 
html = browser.page_source 
links = browser.find_elements_by_class_name('flip-entry') 
print(links) 
browser.quit() 
+0

フレームに切り替えることができます:なぜあなたは 'HTML = browser.page_source'を設定すると' html'を使用していませんか? – JacobIRR

答えて

0

なぜなら、メインページにはリンクがないからです。あなたはIFrame内のリンクを取得しています。 https://drive.google.com/embeddedfolderview?hl=fr&id=0ByUKRdiCDK7-c0k1TWlLM1U1RXc#list

IFrame

このIFrameのポイントは、次のいずれかの代わりに直接メインページのコード内でそのURLを閲覧することができます。それとも、一見

browser.switch_to_frame(browser.find_element_by_class_name("iframe-class")) 
links = browser.find_elements_by_css_selector('.flip-entry a') 

for link in links: 
    print(link.get_attribute("href")) 
0
from bs4 import BeautifulSoup 
from selenium import webdriver 

url = 'https://mila.umontreal.ca/en/cours/deep-learning-summer-school-2017/slides' 
browser = webdriver.Chrome() 
browser.get(url) 
browser.switch_to_frame(browser.find_element_by_class_name('iframe-class')) 
links = browser.find_elements_by_class_name('.flip-entry a') 
for link in links: 
    print(link.get_attribute("href")) 
browser.quit() 
関連する問題