28、周末看电影(每周五自动从top250中随机选取三部电影,并将下载链接发到邮箱里)
import requests
import time
import schedule
import smtplib
import numpy
from urllib.request import quote
from bs4 import BeautifulSoup
from email.mime.text import MIMEText
from email.header import Header def fun_top250_3(): movie_names = [] for i in numpy.random.randint(0,249,3):
res = requests.get('https://movie.douban.com/top250?start={}'.format(i))
soup = BeautifulSoup(res.text,'html.parser')
item = soup.find('div',class_='item').find('span').text
movie_names.append(item) return movie_names def fun_download_url(): movie_names = fun_top250_3() movie_names_urls = '' for i in movie_names:
key_word = quote(i,encoding='gbk')
res = requests.get('http://s.ygdy8.com/plus/so.php?typeid=1&keyword={}'.format(key_word))
res.encoding='gbk'
soup = BeautifulSoup(res.text,'html.parser')
check_none = soup.find('div',class_='co_content8').find('table') if check_none:
item = soup.find('td',width='55%').find('b').find('a')
res = requests.get('https://www.ygdy8.com'+item['href'])
res.encoding='gbk'
soup = BeautifulSoup(res.text,'html.parser')
item = soup.find('td',style='WORD-WRAP: break-word').find('a').text
movie_names_urls += '电影名:{}\t下载链接:{}\n'.format(i,item)
else:
movie_names_urls += '电影名:{}\t下载链接:没有找到\n'.format(i) return movie_names_urls def fun_sendmail(): movie_names_urls = fun_download_url() mail_user = 'www1707@xxx.cn'
mail_pwd = 'yyy'
receiver = 'user01@xxx.cn'
subject = time.strftime('%Y{}%W{}%S').format('年 第','周 推荐电影')
content = movie_names_urls alimail = smtplib.SMTP()
alimail.connect('smtp.qiye.aliyun.com',25)
alimail.login(mail_user,mail_pwd) message = MIMEText(content,'plain','utf-8')
message['Subject'] = Header(subject,'utf-8')
message['From'] = Header(mail_user,'utf-8')
message['To'] = Header(receiver,'utf-8') alimail.sendmail(mail_user,receiver,message.as_string())
alimail.quit() print(movie_names_urls) #schedule.every().friday.do(fun_sendmail())
schedule.every(10).seconds.do(fun_sendmail) while True:
schedule.run_pending()
time.sleep(1)

import requests,csv,random,smtplib,schedule,time
from bs4 import BeautifulSoup
from urllib.request import quote
from email.mime.text import MIMEText
from email.header import Header def get_movielist():
csv_file=open('movieTop.csv', 'w', newline='',encoding='utf-8')
writer = csv.writer(csv_file)
for x in range(10):
url = 'https://movie.douban.com/top250?start=' + str(x*25) + '&filter='
res = requests.get(url)
bs = BeautifulSoup(res.text, 'html.parser')
bs = bs.find('ol', class_="grid_view")
for titles in bs.find_all('li'):
title = titles.find('span', class_="title").text
list1 = [title]
writer.writerow(list1)
csv_file.close() def get_randommovie():
movielist=[]
csv_file=open('movieTop.csv','r',newline='',encoding='utf-8')
reader=csv.reader(csv_file)
for row in reader:
movielist.append(row[0])
three_movies=random.sample(movielist,3)
contents=''
for movie in three_movies:
gbkmovie = movie.encode('gbk')
urlsearch = 'http://s.ygdy8.com/plus/so.php?typeid=1&keyword='+quote(gbkmovie)
res = requests.get(urlsearch)
res.encoding='gbk'
soup_movie = BeautifulSoup(res.text,'html.parser')
urlpart=soup_movie.find(class_="co_content8").find_all('table')
if urlpart:
urlpart=urlpart[0].find('a')['href']
urlmovie='https://www.ygdy8.com/'+urlpart
res1=requests.get(urlmovie)
res1.encoding='gbk'
soup_movie1=BeautifulSoup(res1.text,'html.parser')
urldownload=soup_movie1.find('div',id="Zoom").find('span').find('table').find('a')['href']
content=movie+'\n'+urldownload+'\n\n'
print(content)
contents=contents+content
else:
content='没有'+movie+'的下载链接'
print(content)
return contents def send_movielink(contents):
mailhost='smtp.qq.com'
qqmail = smtplib.SMTP()
qqmail.connect(mailhost,25)
account = '×××××××××@qq.com' # 因为是自己发给自己,所以邮箱账号、密码都可以提前设置好,当然,也可以发给别人啦
password = '×××××××××××××××' # 因为是自己发给自己,所以邮箱账号、密码都可以提前设置好,当然,也可以发给别人啦。
qqmail.login(account,password)
receiver='×××××××××@qq.com' # 因为是自己发给自己,所以邮箱账号、密码都可以提前设置好,当然,也可以发给别人啦。
message = MIMEText(contents, 'plain', 'utf-8')
subject = '电影链接'
message['Subject'] = Header(subject, 'utf-8')
try:
qqmail.sendmail(account, receiver, message.as_string())
print ('邮件发送成功')
except:
print ('邮件发送失败')
qqmail.quit() def job():
get_movielist()
contents=get_randommovie()
send_movielink(contents) schedule.every().friday.at("18:00").do(job)while True:
schedule.run_pending()
time.sleep(1)

28、周末看电影(每周五自动从top250中随机选取三部电影,并将下载链接发到邮箱里)的更多相关文章
- 人一生必看的100部电影(全球最佳电影排名榜TOP250)
人一生必看的100部电影(全球最佳电影排名榜TOP250) 人的一生能看多少部电影?假设我们每周都看一部,从10岁看到80岁将会看3640部.但是我们也不可能喜欢这全部的电影.大多数的可能,我们会根据 ...
- Huginn实现自动通过slack推送豆瓣高分电影
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...
- 【VIP视频网站项目】VIP视频网站项目v1.0.3版本发布啦(程序一键安装+电影后台自动抓取+代码结构调整)
在线体验地址:http://vip.52tech.tech/ GIthub源码:https://github.com/xiugangzhang/vip.github.io 项目预览 主页面 登录页面 ...
- python 电影下载链接爬虫
V1.0 功能:从比较知名的几个电影下载网站爬取下载链接,并自动打印出来: 代码: # -*- coding: utf8 -*- from bs4 import BeautifulSoup impor ...
- asp自动解析网页中的图片地址,并将其保存到本地服务器
程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...
- 使用htmlparse爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...
- 学习Java必看的Java书籍(高清中文最新版附下载链接)
今年下半年,我正式系统地学习Java(之前学习C++).最近把学习Java所用到的书籍整理了一下,分享出来,希望对正在学习或准备学习Java的人有一定的帮助. 关于Java的学习路线,和IDE工具In ...
随机推荐
- [JZOJ6400]:Game(贪心+线段树+二分)
题目描述 小$A$和小$B$在玩一个游戏,他们两个人每人有$n$张牌,每张牌有一个点数,并且在接下来的$n$个回合中每回合他们两人会分别打出手中的一张牌,点数严格更高的一方得一分,然而现在小$A$通过 ...
- UVa679 小球下落(树)
UVa679 小球下落(树) 题目大意 小球从一棵所有叶子深度相同的二叉树的顶点开始向下落,树开始所有节点都为0.若小球落到节点为0的则往左落,否则向右落.并且小球会改变它经过的节点,0变1,1变0. ...
- RF问题收集
console中不打印日志 报错信息: 修改pop方法: try: result = result.decode('UTF-8') except UnicodeDecodeError: pass re ...
- CircleCi 不更新某个分支的两种方法
概述 今天我发现我的所有项目的 CircleCi 部署全部都会更新 gh-pages 分支.找了好久,终于找到了不更新的方法.于是我总结了一下,记录下来,供以后开发时参考,相信对其他人也有用. onl ...
- http协议详解1
一.http协议url组成部分详解:1.协议类型2.ip(服务器地址)3.port(或域名)4.path(请求资源所在地址)5.?(资源地址与参数的分割符合)6.参数(请求参数)7.&(多个参 ...
- python之reportlab生成PDF文件
项目需要,需要自动生成PDF测试报告.经过对比之后,选择使用了reportlab模块. 项目背景:开发一个测试平台,供测试维护测试用例,执行测试用例,并且生成测试报告(包含PDF和excel),将生成 ...
- Python学习之进程
8.2 进程 8.2.1 进程的创建 开启多进程scoketserver:server.client 进程的开启:python中的多线程,一定是有一个主进程,由主进程创建几个子进程, Linux与Wi ...
- <数据结构系列3>队列的实现与变形(循环队列)
数据结构第三课了,今天我们再介绍一种很常见的线性表——队列 就像它的名字,队列这种数据结构就如同生活中的排队一样,队首出队,队尾进队.以下一段是百度百科中对队列的解释: 队列是一种特殊的线性表,特殊之 ...
- 基于高斯分布的异常检测(Anomaly Detection)算法
记得在做电商运营初期,每每为我们频道的促销活动锁取得的“超高”销售额感动,但后来随着工作的深入,我越来越觉得这里面水很深.商家运营.品类运营不断的通过刷单来获取其所需,或是商品搜索排名,或是某种kpi ...
- 在Linux上实现Python调用C语言函数
一般思路 Python中内置ctypes库,需调用c编译成的.so文件来实现函数调用. 假设我们所需调用的c文件名为test.c,文件里有我们需要的函数func(x,y). 将.c文件编译成 .so文 ...