0
点赞
收藏
分享

微信扫一扫

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

E_topia 2023-06-20 阅读 39

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests,bs4,smtplib,sys
import smtplib, sys
from email.mime.text import MIMEText
passwd='haha' #填入发送方邮箱的授权码
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 weathnowwith 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. 等到当前操作完成后,再对下一个网站进行同样的操作,一直到结束。

 

用一个例子来演示会更加清晰



举报

相关推荐

0 条评论