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 ...
随机推荐
- spring-ApplicationContext的事件传播(转)
ApplicationContext中的事件处理是通过ApplicationEvent类和ApplicationListener接口来提供的,通过ApplicationContext的publishE ...
- jsvnadmin访问一直登陆 找不到用户
报错:AH01618: user zhangsan not found: /svn/hangzhi 在svnadmin控制台上将用户分好组,不然即使有账户也登不上
- centos6.4编译gcc6.4
#!/bin/bash dir=$(pwd) echo $dir cd $dir #wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz .tar ...
- ffmpeg命令合流声卡和麦克风声音进行直播
ffmpeg -f dshow -i audio=:duration=first:dropout_transition= -f dshow -i video= -ac -f flv -y d:/tes ...
- c++11多线程---线程锁(mutex)
#include<mutex> 包含四类锁: 1 std::mutex 最基本也是最常用的互斥类 2 std::recursive_mutex 同一线程内可递归 ...
- NOIP考前知识点整理
前言:距离NOIP还有不到一百天(虽然NOIP没了),为了整理一下所学的内容,才有了这篇博文.本文内容无特殊说明全部来自于博主的博客,代码也都是新敲的,努力在个人的码风基础上做到尽量简洁,求资瓷. 一 ...
- vue 钩子函数中获取不到DOM节点
原文链接:https://jingyan.baidu.com/article/f96699bbfe9c9d894f3c1b4b.html 两种解决方案: 1:官方解决方案: 受到 HTML 本身的一些 ...
- SparseLDA算法
2 SparseLDA算法 本章将介绍一种Gibbs Sampling算法的加速算法——SparseLDA [9],它主要利用LDA 模型的稀疏性,来达到加速以及节省内存的目的,是一种精确算法(没有近 ...
- python 生成excel,并下载到本地
from django.shortcuts import reverse,redirect,render from operations import models import xlwt impor ...
- No module named 'pip'
https://blog.csdn.net/wuyepiaoxue789/article/details/84033651 可以首先执行 python -m ensurepip 然后执行 pyth ...