使用requests,lxml爬取百思不得姐

# -*- coding:utf-8 -*-

import requests

import smtplib

from email.mime.text import MIMEText

from email.header import Header

from lxml import etree

#不得姐

url = "http://www.budejie.com/text/"

page = requests.get(url)

html = page.text

selector = etree.HTML(html)

# 第三方 SMTP 服务

mail_host="smtp.163.com"  #设置服务器

mail_user="########"    #用户名

mail_pass="######"  #口令

#邮箱

sender = '########@163.com'

receivers = ['#########@qq.com']

#头像

uimg = selector.xpath('//div[@class="u-img"]/a/img/@src')

#昵称

uname = selector.xpath('//a[@class="u-user-name"]/text()')

#内容

ucontent = selector.xpath('//div[@class="j-r-list-c-desc"]/a/text()')

#发邮件

message = MIMEText('不得姐更新提示', 'plain', 'utf-8')

message['From'] = Header("不得姐", 'utf-8')

message['To'] =  Header("我的APP", 'utf-8')

subject = '不得姐更新'

message['Subject'] = Header(subject, 'utf-8')

#一旦从不得姐获取不到信息,立即发送邮件

if not uimg or uname or ucontent:

try:

smtpObj = smtplib.SMTP()

smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号

smtpObj.login(mail_user,mail_pass)

smtpObj.sendmail(sender, '#########@163.com', message.as_string())               ##这里本来应该填写receviers,但是发现发送失败,可能是因为QQ邮箱的smtp没有启动。所以还是让邮箱自己发给自己吧。

except smtplib.SMTPException:

print "error"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 背景 公司内网有个论坛,各种公司的前沿消息都会有人在讨论。一忙起来,经常忘记逛论坛,所以写了个爬虫,爬取论坛前10...
    aialin阅读 946评论 0 11
  • 一、相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1...
    LizPL阅读 1,372评论 0 3
  • 前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录、结果等等等相关信息通过自动的手段发送给相关人员...
    苦叶子阅读 676评论 0 5
  • 校园小广播第一天播音,先从我们班开始,我布置了楚楚和小汤两个孩子准备。 楚楚参加过很多次这样的活动,几乎不用指导就...
    行走的教育阅读 347评论 2 1