Как получить источник iframe из page_source - PullRequest
0 голосов
/ 05 октября 2018

Здравствуйте, я пытаюсь извлечь ссылку из page_source и мой код:

from bs4 import BeautifulSoup
from selenium import webdriver
import time
import html5lib

driver_path = r"C:\Users\666\Desktop\New folder (8)\chromedriver.exe"
driver = webdriver.Chrome(driver_path)
driver.implicitly_wait(10)

driver.get("https://www.milversite.club/milver/outsiders-1x01-video_060893d7a.html")
try:
    time.sleep(4)
    iframe = driver.find_elements_by_tag_name('iframe')
    for i in range(0, len(iframe)):
        f = driver.find_elements_by_tag_name('iframe')[i]
        driver.switch_to.frame(i)
        #  your work to extract link
        text = driver.find_element_by_tag_name('body').text
        print(text)
        driver.switch_to.default_content()

    output = driver.page_source

    print (output)

finally:
    driver.quit();

А теперь я хочу очистить только эту ссылку LINK

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Попробуйте приведенный ниже скрипт, чтобы получить ссылку, которую вы хотите проанализировать.Вам не нужно переключаться на iframe, чтобы получить ссылку.Задержка с жестким кодом всегда является худшим вариантом для анализа любого динамического содержимого.Что делать, если ссылка появляется через 5 секунд.Я использовал Explicit Wait в приведенном ниже скрипте, чтобы сделать его устойчивым.

from selenium import webdriver
from selenium.webdriver.support import ui

driver = webdriver.Chrome()
wait = ui.WebDriverWait(driver, 10)
driver.get("https://www.milversite.club/milver/outsiders-1x01-video_060893d7a.html")

elem = wait.until(lambda driver: driver.find_element_by_id("iframevideo"))
print(elem.get_attribute("src"))

driver.quit()

Вывод:

https://openload.co/embed/8wVwFQEP1Sw
0 голосов
/ 05 октября 2018

Попробуйте с

element = driver.find_element_by_id('iframevideo')
link = element.get_attribute('src')
...