26、自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱

自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱。

之所以选择这个相对朴实的爬虫项目,是因为天气每天都会有变化,那么在学完这一关之后,不出意外,你就可以在明早收到天气信息了。以此,亲身体验程序的作用。

你还可以把每日的天气和温馨的穿衣提示发送到你的恋人、家人、或朋友的邮箱里,这也是传递心意的一种方式。

总体上来说,可以把这个程序分成三个功能块:【爬虫】+【邮件】+【定时】

 1 import requests
 2 import time
 3 import schedule
 4 from selenium import webdriver
 5 from bs4 import BeautifulSoup
 6 import smtplib
 7 from email.mime.text import MIMEText
 8 from email.header import Header
 9
10 def requests_fun():
11     res = requests.get(‘http://www.weather.com.cn/weather1d/101010100.shtml‘)
12     res.encoding=‘utf-8‘
13     soup = BeautifulSoup(res.text,‘html.parser‘)
14     tianqi  = soup.find(‘input‘,id=‘hidden_title‘)[‘value‘]
15     chuanyi = soup.find(‘li‘,id=‘chuanyi‘).find(‘p‘).text
16     return (tianqi,chuanyi)
17
18 def selenium_fun():
19     driver = webdriver.Chrome()
20     driver.get(‘http://www.weather.com.cn/weather1d/101010100.shtml‘)
21     time.sleep(2)
22     tianqi  = driver.find_element_by_id(‘hidden_title‘).get_attribute(‘value‘)
23     chuanyi = driver.find_element_by_id(‘chuanyi‘).find_element_by_tag_name(‘p‘).text
24     return str(tianqi,chuanyi)
25     driver.close()
26
27 def mail_fun(tianqi,chuanyi,zhuti):
28     mail_user = ‘[email protected]‘
29     mail_pwd  = ‘yyy‘
30     receiver = ‘[email protected]‘
31     subject = zhuti
32     content = tianqi+‘\t‘+chuanyi
33
34     alimail = smtplib.SMTP()
35     alimail.connect(‘smtp.qiye.aliyun.com‘,25)
36     alimail.login(mail_user,mail_pwd)
37
38     message = MIMEText(content,‘plain‘,‘utf-8‘)
39     message[‘Subject‘] = Header(subject,‘utf-8‘)
40     message[‘From‘] = Header(mail_user,‘utf-8‘)
41     message[‘To‘] = Header(receiver,‘utf-8‘)
42
43     alimail.sendmail(mail_user,receiver,message.as_string())
44     alimail.quit()
45
46 def main_fun():
47     tianqi,chuanyi = requests_fun()
48     zhuti = ‘天气早知道    ‘+time.ctime()
49     mail_fun(tianqi,chuanyi,zhuti)
50     print(zhuti)
51
52 #requests_fun()
53 #selenium_fun()
54 #mail_fun()
55 #main_fun()
56
57 schedule.every(10).seconds.do(main_fun)
58
59 while True:
60     schedule.run_pending()
61     time.sleep(1)

原文地址:https://www.cnblogs.com/www1707/p/10850643.html

时间: 2024-10-06 20:13:30

26、自动爬取每日的天气,并定时把天气数据和穿衣提示发送到你的邮箱的相关文章

27、周末吃什么(每周五自动爬取下厨房本周最受欢迎的菜谱)

在之前吴氏私厨的基础上,每周五自动爬取下厨房本周最受欢迎的菜谱 1 import requests 2 import time 3 import schedule 4 import smtplib 5 from email.mime.text import MIMEText 6 from email.header import Header 7 from bs4 import BeautifulSoup 8 9 def caipu_fun(): 10 res = requests.get('ht

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)

python网络爬虫之使用scrapy自动爬取多个网页

前面介绍的scrapy爬虫只能爬取单个网页.如果我们想爬取多个网页.比如网上的小说该如何如何操作呢.比如下面的这样的结构.是小说的第一篇.可以点击返回目录还是下一页 对应的网页代码: 我们再看进入后面章节的网页,可以看到增加了上一页 对应的网页代码: 通过对比上面的网页代码可以看到. 上一页,目录,下一页的网页代码都在<div>下的<a>元素的href里面.不同的是第一章只有2个<a>元素,从二章开始就有3个<a>元素.因此我们可以通过<div>

【转】 Scrapy研究探索(六)——自动爬取网页之II(CrawlSpider)

转自http://blog.csdn.net/u012150179/article/details/34913315 一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如googl

python--输入检索词自动爬取百度搜索页标题信息

背景:在百度每次输入关键词检索后,会出现很多的检索页,不利于有效阅读,为更方便收集检索信息,编写了一个可以收集每个检索页与检索词相关的十条检索信息(百度在每个检索页放置十条检索标题信息).可以根据需要选择爬取多少检索页,通过修改main()函数的depth变量 1 import urllib.request 2 import re 3 4 def get_html_text(url,data_lst,depth): 5 7 for i in range(depth): 8 9 # 根据分析构造网

基于Python实现的ComicReaper漫画自动爬取脚本

讲真的, 手机看漫画翻页总是会手残碰到页面上的广告好吧... 要是能只需要指定一本漫画的主页URL就能给我返回整本漫画就好了... 还是使用Python来实现, 取个名字...就叫 ComicReaper(漫画收割者) 吧! 首先我们对我们接下来要做的事情做一个具体流程分析 我们要获取当前漫画所有章节的标题与URL(标题用于后期存储时文件夹的命名, URL用于跳转到当前章节的开始页面)并且存储在列表中 将会使用到Python的两个库, re 与 urllib 1 import re # 导入正则

(4)分布式下的爬虫Scrapy应该如何做-规则自动爬取及命令行下传参

本次探讨的主题是规则爬取的实现及命令行下的自定义参数的传递,规则下的爬虫在我看来才是真正意义上的爬虫. 我们选从逻辑上来看,这种爬虫是如何工作的: 我们给定一个起点的url link ,进入页面之后提取所有的ur 链接,我们定义一个规则,根据规则(用正则表达式来限制)来提取我们想要的连接形式,然后爬取这些页面,进行一步的处理(数据提取或者其它动作),然后循环上述操作,直到停止,这个时候有一个潜在的问题,就是重复爬取,在scrapy 的框架下已经着手处理了这些问题,一般来说,对于爬取过滤的问题,通

Python3实现QQ机器人自动爬取百度文库的搜索结果并发送给好友(主要是爬虫)

一.效果如下: 二.运行环境: win10系统:python3:PyCharm 三.QQ机器人用的是qqbot模块 用pip安装命令是: pip install qqbot (前提需要有requests库) 实现自己的机器人:网上好几种写法,很简单,不过有时候环境不同会出现错误,下面是亲测可以运行的: from qqbot import QQBotSlot as qqbotslot, RunBot @qqbotslot def onQQMessage(bot, contact, member,

自动爬取代理IP例子

import time import json import datetime import threading import requests from lxml import etree from queue import Queue # 爬取免费代理IP 来源xicidaili.com # 多线程验证代理ip是否可用 class ProxyTest: def __init__(self): self.test_url = "http://pv.sohu.com/cityjson?ie=ut