0
私は次のコードを持っています。私はニュースを見ることができるように、エクスポートされたアイテムを私に電子メールで送る必要があります。私はScrapy - 1.4 - Email Docsを認識しており、私のコードで同じことをするのに十分な例を見つけることができないようです。基本的な電子メールでの送信
このコードを開始するには、どのような方法が良いですか?そうでない場合、いくつかの例を指摘できますか?
import scrapy
import collections
from collections import OrderedDict
from scrapy.spiders import XMLFeedSpider
from tickers.items import tickersItem
class Spider(XMLFeedSpider):
name = "EmperyScraper"
allowed_domains = ["yahoo.com"]
start_urls = ('https://feeds.finance.yahoo.com/rss/2.0/headline?s=UNXL,UQM,URRE,UUUU,VBLT,VGZ,VKTX,VTGN,WINT,XGTI,XTNT,XXII,ZSAN',)
itertag = 'item'
def parse_node(self, response, node):
item = collections.OrderedDict()
item['Title'] = node.xpath(
'title/text()').extract_first()
item['PublishDate'] = node.xpath(
'pubDate/text()').extract_first()
item['Description'] = node.xpath(
'description/text()').extract_first()
item['Link'] = node.xpath(
'link/text()').extract_first()
yield item
アップデート:私もそれを自動化するためにメソッドに探しています!
編集: 以下は、私のコードは、pipelines.pyファイルです。私がこのスクリプトを実行すると、私は>>>y
を出してしまいました。本当に混乱している:
# -*- coding: utf-8 -*-
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
import smtplib
from smtplib import SMTP
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
class TickersPipeline(object):
def send_mail(self, message, title):
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
gmailUser = '[email protected]'
gmailPassword = 'example'
recipient = '[email protected]'
msg = MIMEMultipart()
msg['From'] = gmailUser
msg['To'] = recipient
msg['Subject'] = title
msg.attach(MIMEText(message))
mailServer = smtplib.SMTP('smtp.gmail.com', 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmailUser, gmailPassword)
mailServer.sendmail(gmailUser, recipient, msg.as_string())
mailServer.close()
https://stackoverflow.com/a/11411162/131187に記載されている内容を超えて知っておく必要があるものはありますか? –
これは動作しません。何らかの理由で、私はそのようなコードを使用して私は掻きすることができますが、私は電子メールを受け取っていません。 – Friezan
私は 'from scrapy.mail import MailSender'で始まるコードを参照していました。 OK、小さくしてください。私は 'parse_node'が有用な電子メールアイテムを' yield'すると仮定します。 'To'と 'cc'フィールドにあなたの電子メールアドレス(リスト内)を指定し、残りのものは 'yield 'の直前の3行のコードの最後の2行を入れてみてください。何が起こるか見る。それが動作する場合。 'item'から' body'に物を押しつけて、あなたがどれくらい遠くにいるかを見てください。 –