Python:是否可以在PhantomJS中下载整个网页

时间:2017-01-09 15:58:28

标签: python-3.x phantomjs

我使用PhantomJS进行刮擦。我想知道下载URL的所有内容(包括图像,CSS和JS)并在本地保存以供浏览的可能性吗?

3 个答案:

答案 0 :(得分:0)

# -*- coding: utf-8 -*-
from selenium import webdriver #for cookies collections after all AJAX/JS being executed
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException


dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36")

driver = webdriver.PhantomJS(desired_capabilities=dcap, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any', '--web-security=false'])
driver.set_window_size(1366,768)

driver.get('http://stackoverflow.com')

driver.page_source

这是使用Python Selenium + PhantomJS的完整代码,最后您有完整的页面源。

答案 1 :(得分:0)

我们可以使用evaluate()函数来获取内容。我在nodejs中使用它。

var webPage = require('webpage');
var page = webPage.create();

page.open('http://google.com', function(status) {

  var title = page.evaluate(function() {
    return document.title;
  });

  console.log(title);
  phantom.exit();

});`

答案 2 :(得分:0)

在安装wget的情况下,此任务非常简单:

domain = "www.google.de"
from subprocess import call
call(["wget", "-mk", domain])