на моем локальном компьютере с Windows, как мне написать скрипт для загрузки комиксов каждый день и отправлять его мне по электронной почте? - PullRequest
5 голосов
/ 26 мая 2009

на моей локальной машине с Windows, как мне написать сценарий для загрузки комиксов каждый день и отправлять его мне по электронной почте?

например
http://comics.com/peanuts/

Обновление : я знаю, как загрузить изображение в виде файла. самая сложная часть - как отправить письмо с моего локального компьютера с Windows.

Ответы [ 6 ]

8 голосов
/ 26 мая 2009

Это зависит от того, насколько точно вы хотите быть. Загрузка всей веб-страницы не будет слишком сложной - использование wget, как упоминает Earwicker выше.

Если вы хотите, чтобы фактический файл изображения загружался в комикс, вам понадобится немного больше в вашем арсенале. В Python - потому что это то, что я знаю лучше всего - я думаю, вам нужно использовать urllib для доступа к странице, а затем регулярное выражение для определения правильной части страницы. Поэтому вам необходимо знать точный макет страницы и абсолютный URL-адрес изображения.

Для XKCD, например, следующие работы:

#!/usr/bin/env python

import re, urllib

root_url = 'http://xkcd.com/'
img_url  = r'http://imgs.xkcd.com/comics/'

dl_dir   = '/path/to/download/directory/'

# Open the page URL and identify comic image URL
page  = urllib.urlopen(root_url).read()
comic = re.match(r'%s[\w]+?\.(png|jpg)' % img_url, page)

# Generate the filename
fname = re.sub(img_url, '', comic)

# Download the image to the specified download directory
try:
    image = urllib.urlretrieve(comic, '%s%s' % (dl_dir, fname))
except ContentTooShortError:
    print 'Download interrupted.'
else:
    print 'Download successful.'

Вы можете отправить его по электронной почте так, как вам удобно.

3 голосов
/ 26 мая 2009

Беглый взгляд на Google показывает две программы командной строки, которые вы можете объединить в пакетный файл или используя язык сценариев по вашему выбору.

http://www.gnu.org/software/wget/ - загрузить

http://www.beyondlogic.org/solutions/cmdlinemail/cmdlinemail.htm - для отправки электронного письма

Вы можете использовать планировщик задач Windows на панели управления, чтобы запускать его ежедневно.

Если вы используете Python, наверняка будут удобные библиотеки для загрузки / отправки по электронной почте - просмотрите официальный сайт Python.

2 голосов
/ 26 мая 2009

Настроить feedburner на RSS-канал, подписаться на оповещения по электронной почте?

1 голос
/ 27 мая 2009

Это довольно просто, если вы уже знаете, как загрузить файл. После загрузки создайте cronjob, который отправит его вам по электронной почте.

Использовать что-то вроде phpmailer было бы проще всего по электронной почте

http://phpmailer.codeworxtech.com/index.php?pg=examplebmail

1 голос
/ 26 мая 2009

Электронная почта это легко. Выберите библиотеку на вашем любимом языке и прочитайте документацию. Отправьте его через свою обычную учетную запись электронной почты или создайте для него новую бесплатную учетную запись GMail.

Иногда вложения действительно могут быть хитрыми. Если ничего другого, поделитесь с любой библиотекой, которая вам больше нравится, и опубликуйте еще один конкретный вопрос о любых проблемах, с которыми вы столкнулись.

1 голос
/ 26 мая 2009

Вот, пожалуй, самое короткое расстояние до вашей цели.

Это не просто ... вам нужно будет разобраться, как разобрать изображение, и пример с арахисом кажется непредсказуемым URI, поэтому может быть сложнее, чем кажется, получить само изображение. Лучше всего будет прочитать HTML удаленной веб-страницы, написать регулярное выражение для анализа URL-адреса изображения. Тогда функция mail будет работать нормально, отправьте электронное письмо в формате HTML, установив заголовки в функции mail () примерно так:

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html;";
$headers .= " charset=iso-8859-1\r\n";

С тегами изображений в почте. Это позволит вам получать электронные письма со всеми вашими комиксами, размещенными один за другим. Ваше программное обеспечение электронной почты будет выполнять HTTP-запросы для загрузки изображений для вас , поэтому вы можете избежать необходимости прикреплять изображения напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...