If you're looking to save from your mobile, you can download the appropriate gDrive app, which will add an entry to your share action list. On desktop use @AlEverett's solution or a similar extension for other browsers.
If you're looking to email, you could do something like this:
Procedure
Run a script to check gmail every couple of minutes for new emails that are labeled with GoogleDrive, then copy the email text or attachment to Google drive.
Send the email to you+gdrive@google.com (note that gmail ignores anything between the + and the @)
Set a filter to add the label GoogleDrive to all emails sent to that particular email address.
Sample Script
This script will just get the attachments and is run from a spreadsheet, but it's a starting point...
function sendToGDrive() {
var sheet = SpreadsheetApp.getActiveSheet();
// Find the Gmail Label and Google Drive Folder
var gLabel = sheet.getRange("D4:D4").getValues();
var gFolder = sheet.getRange("D5:D5").getValues();
// Search for any news messages with the Google Drive Label
var threads = GmailApp.search("label:" + gLabel);
var folder = DocsList.getFolder(gFolder);
for (var x=0; x<threads.length; x++) {
var messages = threads[x].getMessages();
for (var y=0; y<messages.length; y++) {
var att = messages[y].getAttachments();
for (var z=0; z<att.length; z++) {
try {
// Copy the Gmail attachment to Google Drive
var file = folder.createFile(att[z]);
// Wait for a minute to prevent timeout errors
Utilities.sleep(1000);
}
catch (e) {
GmailApp.sendEmail(
Session.getActiveUser().getUserLoginId(),
"Error: " + messages[z].getSubject(), e.message);
}
}
}
// Message Processed; Remove the Google Drive Label
GmailApp.getUserLabelByName(gLabel)
.removeFromThread(threads[x]);
}
}
// Initialize the Google Apps Script
function configure() {
var sheet = SpreadsheetApp.getActiveSheet();
var gLabel = sheet.getRange("D4:D4").getValues();
var gFolder = sheet.getRange("D5:D5").getValues();
if (!GmailApp.getUserLabelByName(gLabel)) {
GmailApp.createLabel(gLabel);
}
var folders = DocsList.getAllFolders();
var found = false;
for (var i=0; i<folders.length; i++) {
if (folders[i].getName() == gFolder) {
found = true;
break;
}
}
if (!found) {
DocsList.createFolder(gFolder);
}
// Set a Time-driven trigger for every 5 minutes
if (ScriptApp.getScriptTriggers().length == 0) {
ScriptApp.newTrigger("sendToGDrive").timeBased().everyMinutes(5).create();
}
SpreadsheetApp.getActiveSpreadsheet()
.toast("That's it. Google Docs will monitor your mailbox in the background.",
"Close Window", -1);
}
// Create the Gmail menu in Google sheet
function onOpen() {
var menu = [
{name: "Initialize", functionName: "configure"},
{name: "Run", functionName: "configure"}
];
SpreadsheetApp.getActiveSpreadsheet()
.addMenu("Gmail (Click here)", menu);
}
References
Disclaimer: I haven't tested it.
Edit: much more thorough answer, completely rewritten from being a lazy link - thanks for the nudge, Al