为啥我代码只爬取了最后一个月的天气啊

是这样,我写了一段代码 准备爬取泰安一年的天气 用的for循环 结果最后只打印出最后一个月的天气

img

主要是网址构造错误,str(page)在获取月份为个位数是构造出来的不是有效网址。应该写成如下代码即可:

import requests
from bs4 import BeautifulSoup
import time
for page in range(1,13):
    
    url='http://www.tianqihoubao.com/lishi/taian/month/2020'
    myurl=url+str(page).zfill(2)+'.html'
    print(myurl)
    r=requests.get(myurl)
    r.encoding=r.apparent_encoding
    soup=BeautifulSoup(r.text,'lxml')
    z=soup.find_all('tr')
    print(z)
    time.sleep(1)

如对你有帮助,请点击我回答的右上方采纳按钮给予采纳一下。

你的输出要放在for循环内
print(z)向右缩进一格,放在for循环内输出每一次的结果

print(z)放在循环里,你这样打印当然只有最后一个z