我遇到類似的問題,我能找到的唯一的選擇是使用subprocess
和phantomjs
這裏是的Python代碼
import json, subprocess
output = check_output(['phantomjs', 'getResources.js', main_url])
urls = json.loads(output)
for url in urls:
#filter and process URLs
和的Javascript文件內容
// getResources.js
// Usage:
// phantomjs getResources.js your_url
var page = require('webpage').create();
var system = require('system');
var urls = Array();
page.onResourceRequested = function(request, networkRequest) {
urls.push(request.url)
};
page.onLoadFinished = function(status) {
setTimeout(function() {
console.log(JSON.stringify(urls));
phantom.exit();
}, 16000);
};
page.onResourceError = function() {
return false;
}
page.onError = function() {
return false;
}
page.open(system.args[1]);
PhantomJS支持va也有不同的選擇。例如更改用戶代理,你可以使用這樣的事情:
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) ...';
這是我用我的問題this answer的簡化版本。
請您澄清一下其他選項(除了**硒**)是否可以接受,如果是,請查看提供的解決方案? –