我正在尝试从网站中提取.mp4链接,该链接仅显示在网络浏览器的“检查元素”标签中。
我在互联网上读到我需要使用硒,例如使用PhantomJS来获取该代码。我试过了,但是我得到了在“显示源代码”中可见的HTML文件
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=r'C:\Users\Nevendary\Desktop\phantomjs-2.1.1-windows\bin\phantomjs')
driver.get("https://filmovitica.com/pucanj-u-sljiviku-preko-reke-1978-domaci-film-gledaj-online/")
driver.implicitly_wait(30)
print(driver.page_source)
我希望获得包含以下内容的代码:https://fs40.gounlimited.to/tea5u5akd32qzxfffpqyfndb6resauu5w43w7enoxkvu6sjtrf5hfhbz3ika/v.mp4“
但是我得到的只是网站的普通HTML
答案 0 :(得分:0)
请尝试将PhantomJS
与ChromeDriver
选项一起使用,而不是headless
。这将为您提供您所追求的输出。
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
driver=webdriver.Chrome(executable_path='path of chrome driver',options=chrome_options)
driver.get("https://filmovitica.com/pucanj-u-sljiviku-preko-reke-1978-domaci-film-gledaj-online/")
print(driver.page_source)
注意:如果您没有基于浏览器的兼容性安装chromedriver,则可以从以下链接下载chromedriver。下载任何chrome驱动程序以获取兼容性之前,请阅读发行说明。 Download Chrome driver
使用Beautiful Soup(这是python库)来完成此操作的另一种方法。
import requests
from bs4 import BeautifulSoup
data=requests.get('https://filmovitica.com/pucanj-u-sljiviku-preko-reke-1978-domaci-film-gledaj-online/')
soup=BeautifulSoup(data.text,'html.parser')
print(soup)
注意:安装pip install beautifulsoup4
很容易,您可以查看以下有关美丽汤Beautiful Soup的链接
答案 1 :(得分:0)
您可以直接获取视频元素的src
属性,而不是搜索页面源,该属性包含您要访问的链接。
视频链接位于iframe
中。在不切换到框架的情况下获取页面源将不会返回视频链接。
我以chromedriver为例。
尝试一下:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="chromedriver.exe")
wait = WebDriverWait(driver, 20)
driver.get("https://filmovitica.com/pucanj-u-sljiviku-preko-reke-1978-domaci-film-gledaj-online/")
vframe = driver.find_element_by_xpath("//iframe[@width='900']")
driver.switch_to.frame(vframe)
videoElement = wait.until(EC.visibility_of(driver.find_element(By.CSS_SELECTOR, "#vplayer > div > div.container > video")))
print(videoElement.get_attribute('src'))
driver.quit()
答案 2 :(得分:0)
检查html确实确实是在iframe使用的同一URL内生成了链接。您可以使用请求来获取该信息:
import requests
from bs4 import BeautifulSoup
res = requests.get('https://filmovitica.com/pucanj-u-sljiviku-preko-reke-1978-domaci-film-gledaj-online/')
soup = bs(res.content, 'lxml')
print(soup.select_one('iframe[allowfullscreen]')['src'])
您可以在uri中的一个脚本标签中找到它的生成方式(您的字符串)(请参阅以蓝色突出显示的行:
后来该js: