第一步很簡單,上某度就可以直接搜到冰冰的照片。
右鍵選擇你喜歡的圖片,在新標籤頁中開啟圖片,複製上方的url,如圖:
用requests.get(url).content取得圖片,並用with open儲存在本機。
我選取了3張冰冰的gif動圖並保存在一個列表中並隨機返回一張,各位想擴充冰冰圖庫很容易,代碼如下。
def getbb(): w0='https://img1.baidu.com/it/u=1762637264,598758602&fm=26&fmt=auto&gp=0.jpg' w1='https://img1.baidu.com/it/u=2231058723,1803013600&fm=11&fmt=auto&gp=0.jpg' w2='https://img0.baidu.com/it/u=3960011140,3634140813&fm=11&fmt=auto&gp=0.jpg' wlist=[w0,w1,w2] global i i=random.randint(0,2)#随机选取一个冰冰动图 url=wlist[i] req=requests.get(url).content with open(f'wbb{i}.gif','wb') as p: p.write(req)
這裡的告白話語是你想跟冰冰說的話哦,你可以自己打字,當然你要是表白話語都懶得自己說,小編也幫你自動爬取了網上的文學詩篇哦,要多有詩人氣質就多有氣質。
也將此功能封裝成一個函數如下:
def getwords(): texts = [] url = 'https://www.duanwenxue.com/huayu/lizhi/list_{}.html'.format(random.randint(1,114)) response = requests.get(url) texts.append(response.text) articles = [] for text in texts: soup = BeautifulSoup(text,'lxml') arttis = soup.find('div', class_='list-short-article').find_all('a', {'target': "_blank"}) # 寻找情话内容 # 通过列表推导式以及for循环获取到每个a标签里面的text内容并通过strip去除空格 articles.extend([arttis[i].text.strip() for i in range(len(arttis))]) todaywords = articles[random.randint(0, len(articles)-1)] # 随机选取其中一条情话 return todaywords
接下來要進入重點了,你給冰冰說話了,還要讓冰冰給你回复,那如何來實現呢?
這裡用一個智慧機器人模擬冰冰並產生回信內容。
現在的智慧聊天機器人有不少,推薦有錢可以選圖靈機器人,免費的可以用青雲客。
此文用青雲客實現,無需註冊,直接呼叫介面即可,非常方便。
封裝成函數,輸入表白話語,自動返回智慧對話:
def qingyunke(msg): url = f'http://api.qingyunke.com/api.php?key=free&appid=0&msg={msg}' html = requests.get(url) return html.json()["content"]
讀者有興趣可以試試這個功能,將第二步爬取到的sao話作為函數的輸入msg會發生很有趣的事:
最後就是要讓冰冰給您送私信並附上她的美照了~
可以用常見的郵箱實現,比如163郵箱或者QQ郵箱都可以。
這裡以163信箱為例,點選設定:
#點選POP3/SMTP/IMAP:
#點選開啟IMAP/SMTP服務:
會產生一個授權碼,這個授權碼複製下來,後面需要用到。
下面是我寫好的程式碼,你只需要填寫你的帳號和授權碼就可以了哦。
def sendemail(): msgword = getwords() res = qingyunke(msgword) xhx='你的163邮箱账号'#你实际使用的163邮箱账号 pwd = '你的授权密码'#刚刚生成的163授权密码 wy163list=[xhx]#收件人列表,可以扩充 host_server = 'smtp.163.com' #163邮箱smtp服务器 sender = f'{xhx}@163.com' #发件人邮箱 receiver = f'{wy163list[0]}@163.com'#收件人 mail_title = '冰冰向您发送了新邮件' #邮件标题 #邮件正文内容 #为保证接口稳定,调用频率请控制在200次/10分钟 mail_content = f"亲爱的{wy163list[0]},我是冰冰,<p>上次收到你给我的来信:<p>{msgword}<p>我很感动,特意给你回信并附上冰冰的美照哦~<p>现在我想对你说:<p>{res}<p>您好,<p>欢迎关注我的CSDN个人账号以获取最新创意好文,<p>开启python魔法之旅:</p> <p><a href='https://blog.csdn.net/x978404178?spm=1001.2100.3001.5343'>点击此处进入CSDN</a></p>" msg = MIMEMultipart() #将图片显示在正文 global i with open(f'wbb{i}.gif', 'rb') as f: #图片添加到正文 msgImage = MIMEImage(f.read()) # 定义图片ID msgImage.add_header('Content-ID', '<image1>') msg.attach(msgImage) msg["Subject"] = Header(mail_title,'utf-8') msg["From"] =Header("冰冰","utf-8") msg["To"] = receiver msg.attach(MIMEText(mail_content,'html')) try: smtp = SMTP_SSL(host_server) # ssl登录连接到邮件服务器 smtp.set_debuglevel(1) # 0是关闭,1是开启debug smtp.ehlo(host_server) # 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码 smtp.login(sender,pwd) smtp.sendmail(sender,receiver,msg.as_string()) smtp.quit() print("邮件发送成功") except smtplib.SMTPException: print("无法发送邮件")
到这里呢,本文就该告一段落了,小编这里把整体代码都奉上啦,欢迎大家动手实践,有问题可以随时私我噢~
# -*- coding: utf-8 -*- from bs4 import BeautifulSoup import random import requests from smtplib import SMTP_SSL import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.image import MIMEImage def getbb(): w0='https://img1.baidu.com/it/u=1762637264,598758602&fm=26&fmt=auto&gp=0.jpg' w1='https://img1.baidu.com/it/u=2231058723,1803013600&fm=11&fmt=auto&gp=0.jpg' w2='https://img0.baidu.com/it/u=3960011140,3634140813&fm=11&fmt=auto&gp=0.jpg' wlist=[w0,w1,w2] global i i=random.randint(0,2)#随机选取一个冰冰动图 url=wlist[i] req=requests.get(url).content with open(f'wbb{i}.gif','wb') as p: p.write(req) def getwords(): texts = [] url = 'https://www.duanwenxue.com/huayu/lizhi/list_{}.html'.format(random.randint(1,114)) response = requests.get(url) texts.append(response.text) articles = [] for text in texts: soup = BeautifulSoup(text,'lxml') arttis = soup.find('div', class_='list-short-article').find_all('a', {'target': "_blank"}) # 寻找情话内容 # 通过列表推导式以及for循环获取到每个a标签里面的text内容并通过strip去除空格 articles.extend([arttis[i].text.strip() for i in range(len(arttis))]) todaywords = articles[random.randint(0, len(articles)-1)] # 随机选取其中一条情话 return todaywords def qingyunke(msg): url = f'http://api.qingyunke.com/api.php?key=free&appid=0&msg={msg}' html = requests.get(url) return html.json()["content"] def sendemail(): msgword = getwords() res = qingyunke(msgword) xhx='你的163邮箱账号'#你实际使用的163邮箱账号 pwd = '你的授权密码'#刚刚生成的163授权密码 wy163list=[xhx]#收件人列表,可以扩充 host_server = 'smtp.163.com' #163邮箱smtp服务器 sender = f'{xhx}@163.com' #发件人邮箱 receiver = f'{wy163list[0]}@163.com'#收件人 mail_title = '冰冰向您发送了新邮件' #邮件标题 #邮件正文内容 #为保证接口稳定,调用频率请控制在200次/10分钟 mail_content = f"亲爱的{wy163list[0]},我是冰冰,<p>上次收到你给我的来信:<p>{msgword}<p>我很感动,特意给你回信并附上冰冰的美照哦~<p>现在我想对你说:<p>{res}<p>您好,<p>欢迎关注我的CSDN个人账号以获取最新创意好文,<p>开启python魔法之旅:</p> <p><a href='https://blog.csdn.net/x978404178?spm=1001.2100.3001.5343'>点击此处进入CSDN</a></p>" msg = MIMEMultipart() #将图片显示在正文 global i with open(f'wbb{i}.gif', 'rb') as f: #图片添加到正文 msgImage = MIMEImage(f.read()) # 定义图片ID msgImage.add_header('Content-ID', '<image1>') msg.attach(msgImage) msg["Subject"] = Header(mail_title,'utf-8') msg["From"] =Header("冰冰","utf-8") msg["To"] = receiver msg.attach(MIMEText(mail_content,'html')) try: smtp = SMTP_SSL(host_server) # ssl登录连接到邮件服务器 smtp.set_debuglevel(1) # 0是关闭,1是开启debug smtp.ehlo(host_server) # 跟服务器打招呼,告诉它我们准备连接,最好加上这行代码 smtp.login(sender,pwd) smtp.sendmail(sender,receiver,msg.as_string()) smtp.quit() print("邮件发送成功") except smtplib.SMTPException: print("无法发送邮件") if __name__ == '__main__': getbb() sendemail()
运行时间大概在30s~1min30s哦,快登录你的邮箱查看冰冰给你的悄悄话吧。
效果如下:
好了,各位有没有get到冰冰呢?欢迎在下方评论区留言讨论哦。
本文基于Python网络爬虫,抓取了王冰冰靓女的动图图片,之后利用网络爬虫技术获取了文学诗篇网站的表白桥段,通过青云客平台,打造了一款智能机器人模拟冰冰回信,并且基于邮箱服务器,模拟冰冰向自己发送新邮件,每天打开邮箱,都可以收到女神的邮箱,心情美滋滋~如此有趣的项目,快快来尝试吧!
以上是手把手教你用Python網路爬蟲+自動化來創建一位屬於你自己的虛擬女票(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!