循环问题请助!
本帖最后由 jjxx2005 于 2020-7-20 21:51 编辑import requests
from lxml import etree
UA = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
a1 = input(f'是否想继续查询某城市近几日的天气预报? 是/否:')
if a1 == '是' or a1 == 'Y' or a1 == 'y':
while True:
try:
n1 = input(f'只能查询3天、7天、10天、15天、30天,请输入对应数字:')
n1 in ['3','7','10','15','30']
url = f'https://www.tianqi.com/beijing/{n1}/'
r1 = requests.get(url=url, headers=UA).text
x1 = etree.HTML(r1)
d1 = x1.xpath('//div[@class="weaul_q weaul_qblue"]/text()')
d1 =
temp = x1.xpath('//div[@class="weaul_z"]//text()')
temp = + ',' + ''.join(temp) for i in range(0, len(temp), 5)]
l1 = len(d1)
# for i in l1:
# print(d1,temp)
# break
except:
print('输入错误,请重新输入:')
我的目的是
(1)当a1接收到是或Y或y时继续,否则退出
(2)如果继续时,再让输入天数,如果输入不是3,7,10,15,30,那就重新输入,直到输入的数字符合3,7,10,15,30为止
(3)当输入的数字符合 3,7,10,15,30时,解析网页,拿到d1和temp两个列表,现在想将列表对应的元素显示出来,然后退出循环
比如
d1 = ['a','b','c']
temp = ['1','2','3']
想打印出来的结果是:
a,1
b,2
c,3
但是try里面写for循环就会进入
except:
print('输入错误,请重新输入:')
状态了....
改成这样试试看:
import requests
from lxml import etree
UA = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
a1 = input(f'是否想继续查询某城市近几日的天气预报? 是/否:')
if a1 == '是' or a1 == 'Y' or a1 == 'y':
while True:
try:
n1 = input('只能查询3天、7天、10天、15天、30天,请输入对应数字:')
while n1 not in ['3','7','10','15','30']:
ni = input('输入错误!只能查询3天、7天、10天、15天、30天,请输入对应数字:')
url = f'https://www.tianqi.com/beijing/{n1}/'
r1 = requests.get(url=url, headers=UA).text
x1 = etree.HTML(r1)
d1 = x1.xpath('//div[@class="weaul_q weaul_qblue"]/text()')
d1 =
temp = x1.xpath('//div[@class="weaul_z"]//text()')
temp = + ',' + ''.join(temp) for i in range(0, len(temp), 5)]
l1 = len(d1)
for i in range(l1):
print(d1,temp)
break
except:
print('输入错误,请重新输入:') 本帖最后由 nahongyan1997 于 2020-7-20 22:21 编辑
我修改并优化了你的代码,使它更迎合你要表达的意思,但你的xpath表达式本身存在问题导致根本无法爬取到数据。
满意请设置最佳答案
import requests
from lxml import etree
UA = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
a1 = input(f'是否想继续查询某城市近几日的天气预报? 是/否:')
if a1 == '是' or a1.casefold() == 'y':
while True:
n1 = input(f'只能查询3天、7天、10天、15天、30天,请输入对应数字:')
if n1 in ['3','7','10','15','30']:
url = f'https://www.tianqi.com/beijing/{n1}/'
r1 = requests.get(url=url,headers = UA).text
x1 = etree.HTML(r1)
d1 = x1.xpath('//div[@class="weaul_q weaul_qblue"]/text()')
d1 =
temp = x1.xpath('//div[@class="weaul_z"]//text()')
temp = + ',' + ''.join(temp) for i in range(0, len(temp), 5)]
for i in range(len(d1)):
print(d1,temp)
break
else:
print('输入错误,请重新输入:')
Twilight6 发表于 2020-7-20 21:56
改成这样试试看:
他只显示一天的数据
07月20日今天 晴,21~34℃阴转多云
然后还是在不停的让我输入天数 Twilight6 发表于 2020-7-20 21:56
改成这样试试看:
你是不是成天泡在论坛里 本帖最后由 Twilight6 于 2020-7-20 22:15 编辑
jjxx2005 发表于 2020-7-20 22:03
他只显示一天的数据
07月20日今天 晴,21~34℃阴转多云
然后还是在不停的让我输入天数
看看这样呢:
import requests
from lxml import etree
UA = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
a1 = input(f'是否想继续查询某城市近几日的天气预报? 是/否:')
if a1 == '是' or a1 == 'Y' or a1 == 'y':
while True:
n1 = input('只能查询3天、7天、10天、15天、30天,请输入对应数字:')
while n1 not in ['3', '7', '10', '15', '30']:
ni = input('输入错误!只能查询3天、7天、10天、15天、30天,请输入对应数字:')
url = f'https://www.tianqi.com/beijing/{n1}/'
r1 = requests.get(url=url, headers=UA).text
x1 = etree.HTML(r1)
d1 = x1.xpath('//div[@class="weaul_q weaul_qblue"]/text()')
d1 =
temp = x1.xpath('//div[@class="weaul_z"]//text()')
temp = + ',' + ''.join(temp) for i in range(0, len(temp), 5)]
l1 = len(d1)
for i in range(l1):
print(d1, temp)
# 如果只想循环一次,把这里的 break 注释去掉
# break nahongyan1997 发表于 2020-7-20 22:02
我修改并优化了你的代码,使它更迎合你要表达的意思,但你的xpath表达式本身存在问题导致根本无法爬取到数 ...
这个代码这回我试过了,完全没问题了。 jjxx2005 发表于 2020-7-20 22:03
他只显示一天的数据
07月20日今天 晴,21~34℃阴转多云
然后还是在不停的让我输入天数
我的第一个最佳答案就交给你了 nahongyan1997 发表于 2020-7-20 22:22
我的第一个最佳答案就交给你了
{:10_277:}最后,楼主白嫖了,谁也没选{:10_277:}
悲伤的故事{:10_243:} 永恒的蓝色梦想 发表于 2020-7-20 23:01
最后,楼主白嫖了,谁也没选
悲伤的故事
No 白嫖!!
永恒的蓝色梦想 发表于 2020-7-20 23:01
最后,楼主白嫖了,谁也没选
悲伤的故事
谢谢大佬的鱼币
页:
[1]