python 爬虫 发送每天天气 - 爬虫的流程

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests,bs4,smtplib,sys
import smtplib, sys
from email.mime.text import MIMEText
msg_from='linuxdxw@163.com' #发送方邮箱
passwd='haha' #填入发送方邮箱的授权码
#msg_to='1536175386@qq.com' #收件人邮箱
msg_to='dingxw@onecloud.cn' #收件人邮箱

subject="weather report" #主题
def sent():
  fileObj = open('/root/port.txt')
  content=fileObj.read()
  msg = MIMEText(content)
  msg['Subject'] = subject
  msg['From'] = msg_from
  msg['To'] = msg_to
#try:
  s = smtplib.SMTP("smtp.163.com",25)
  s.login(msg_from, passwd)
  s.sendmail(msg_from, msg_to, msg.as_string())
# print "发送成功"
#except s.SMTPException,e:
# print "发送失败"
#finally:
  s.quit()

def getweather(pos):
  headers={'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0'}
  url='http://www.tianqi.com/guangzhou/'
  urlhtml=requests.get(url,headers=headers)
  urlhtml.raise_for_status()
  weatherhtml=bs4.BeautifulSoup(urlhtml.text[:],'html.parser')
  weather=weatherhtml.select('a')
  for i in range(len(weather)):
  weathnow=weather[i].getText()
  if i == pos:
    return weathnow

with open('/root/port.txt','w') as f:
  f.write(getweather(23)+"\n")

with open('/root/port.txt','a') as f:
  f.write(getweather(35)+"\n"+"\n")
with open('/root/port.txt','a') as f:
  f.write(getweather(75)+"\n")

sent()

---------------------------------------------------

2. 爬虫的流程 - 程序每次对一个网站执行下载操作,都必须等到前一个网站下载完成后才能开始。

1. 先是遍历存储网站的列表;
2. 然后对当前网站执行下载操作;
3. 等到当前操作完成后,再对下一个网站进行同样的操作,一直到结束。

 

posted @ 2018-03-21 21:00  littlevigra  阅读(216)  评论(0编辑  收藏  举报