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. 等到当前操作完成后,再对下一个网站进行同样的操作,一直到结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App