python爬取英语学习资料并发送邮件
新建发送邮件类
import smtplib
from email.mime.text import MIMEText
from email.header import Header
class SendMail:
def __init__(self):
self.sender = 'xx@qq.com'
self.receivers = ['xx1@qq.com','xx2@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
self.smtp_server = 'smtp.qq.com'
self.smtp_pwd = 'xx'
self.stmp_port = 25
def sendMessage(self, title, msg):
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
message = MIMEText(msg, 'plain', 'utf-8')
message['From'] = self.sender
message['To'] = ';'.join(self.receivers)
message['Subject'] = Header(title, 'utf-8')
smtpObj = smtplib.SMTP(self.smtp_server, self.stmp_port)
smtpObj.starttls()
smtpObj.login(self.sender, self.smtp_pwd)
smtpObj.sendmail(self.sender, self.receivers, message.as_string())
print('success')
爬取英语学习资料
比如爬取英语学习链接:http://www.hjenglish.com/new/c1020/,将当前页文章爬取到并发送邮件到指定邮箱:
from bs4 import BeautifulSoup
import time, os
import xlwt
import requests
import datetime
import threading
import schedule
from mymodule.SendMail import *
def getLinks(url):
try:
res = requests.get(url, headers={'Host': 'www.hjenglish.com', 'Referer':'http://www.hjenglish.com/new/cet/', 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'})
res.raise_for_status()
page = BeautifulSoup(res.text, 'lxml')
res.close()
links =['http://www.hjenglish.com' + adom['href'] for adom in page.select('.big-link.title-article')]
return links
except Exception as err:
print(err)
def spiderLink(url, lock):
print('当前线程', threading.currentThread().getName())
res = requests.get(url, headers={'Host': 'www.hjenglish.com', 'Referer':'http://www.hjenglish.com/new/cet/', 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'})
if res.status_code == 200:
try:
page = BeautifulSoup(res.text, "lxml")
res.close()
titles = [title.getText() for title in page.select('.article-header .title')]
contents = [contentDom.getText() for contentDom in page.select('#J-article-content')]
# print(titles, contents)
num = len(titles)
print(titles, contents)
for i in range(0, num):
print(titles[i], contents[i])
sender.sendMessage(titles[i], contents[i])
except Exception as err:
print(err)
else:
pass
def my_job():
try:
starttime = datetime.datetime.now()
url = 'http://www.hjenglish.com/new/c1020/'
lock = threading.Lock()
spider_links = getLinks(url)
threads = [threading.Thread(target=spiderLink, args=(link, lock)) for link in spider_links]
for thread1 in threads:
thread1.start()
for thread2 in threads:
thread2.join()
endtime = datetime.datetime.now()
print('have spend ', str((endtime - starttime).seconds) + 's')
except Exception as err:
print(err)
os._exit(0)
if __name__ == '__main__':
try:
sender = SendMail()
my_job()
except Exception as err:
print(err)
os._exit(0)
python爬取英语学习资料并发送邮件的更多相关文章
- Python学习-使用Python爬取陈奕迅新歌《我们》网易云热门评论
<后来的我们>上映也有好几天了,一直没有去看,前几天还爆出退票的事件,电影的主题曲由陈奕迅所唱,特地找了主题曲<我们>的MV看了一遍,还是那个感觉.那天偶然间看到Python中 ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- python入门学习之Python爬取最新笔趣阁小说
Python爬取新笔趣阁小说,并保存到TXT文件中 我写的这篇文章,是利用Python爬取小说编写的程序,这是我学习Python爬虫当中自己独立写的第一个程序,中途也遇到了一些困难,但是最后 ...
- 我用 Python 爬取微信好友,最后发现一个大秘密
前言 你身处的环境是什么样,你就会成为什么样的人.现在人们日常生活基本上离不开微信,但微信不单单是一个即时通讯软件,微信更像是虚拟的现实世界.你所处的朋友圈是怎么样,慢慢你的思想也会变的怎么样.最近在 ...
- 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)
由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...
- 利用python爬取58同城简历数据
利用python爬取58同城简历数据 利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用pyth ...
- python爬取《龙岭迷窟》的数据,看看质量剧情还原度到底怎么样
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:简单 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...
- 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!
众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...
- Python爬取跑男的评论,看看大家都在看谁吧
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python,作者: J哥 Python爬取爬取腾讯视频弹幕视频讲解 http ...
随机推荐
- 洛谷 P1503 鬼子进村
题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战. 题目描述 描述 县城里 ...
- 小程序tabBar显示问题
我一直在纠结为什么小程序在有的页面显示,有的页面不显示 查了一下才知道,小程序tabBar只在tabBar中的list定义了页面的才会显示,其余页面不会显示 如下例:tabBar只在画红框的页面显示
- SDK 开发 .a .framework .bundle (xcode引用) 依赖sdk工程
一. 静态库.a 1.创建静态库工程 Cocoa Touch Static Libray ,然后可以创建一个测试视图 TestView 2.暴露头文件 -> Build Phases--> ...
- sharding-jdbc数据分片配置
数据分片 不使用Spring 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> ...
- abp架构添加实体并使用迁移功能生成表
参考: https://aspnetboilerplate.com/Pages/Articles/Introduction-With-AspNet-Core-And-Entity-Framework- ...
- HDU - 1085 母函数
年轻人的第一道母函数入门题 #include<bits/stdc++.h> using namespace std; const int maxn = 1000+2000+5000+1; ...
- 下厨房---map/字符串查询
题目描述 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料. 输入描述: 每个输入包含 1 个测试用例.每个测试用例的第 i 行,表示完成第 i 件料理需要 ...
- RMQ、POJ3264
这里说几篇博客,建议从上到下看 https://blog.csdn.net/qq_31759205/article/details/75008659 https://blog.csdn.net/sgh ...
- archlinux升级firefox的flash插件
参考:http://blog.csdn.net/kingolie/article/details/53066415 1. 在https://get.adobe.com/flashplayer/下载文件 ...
- Intellij IDEA 添加项目依赖
https://blog.csdn.net/TaooLee/article/details/51305443 idea导入一个maven项目 https://blog.csdn.net/qq_3837 ...