爬虫--爬取全国天气

虫子的修养

创建地域Ip字典
import pickle
def diyiip():
    n=open('D:\\地域IP.xiaofeige','wb')
    m={
    '北京':'101010100','八达岭':'101011600','天津':'101030100','宝坻':'101030300','东丽':'101030400','石家庄':'101090101',
    '张家口':'101090301','承德':'101090402','唐山':'101090501','秦皇岛':'101091101','沧州':'101090701','衡水':'101090801',
    '郑州':'101180101','新乡':'101180301','许昌':'101180401','平顶山':'101180501','信阳':'101180601','南阳':'101180701',
    '开封':'101180801','洛阳':'101180901','商丘':'10181001','焦作':'101181101','鹤壁':'101181201','濮阳':'101181301',
    '周口':'101181401','漯河':'101181501','驻马店':'101181601','三门峡':'101181701','济源':'101181801','安阳':'101180201',
    '合肥':'101220101','安庆':'101220601','宿州':'101220701','阜阳':'101220801','亳州':'101220901','绍兴':'101210501',
    '台州':'101210601','温州':'101210701','丽水':'101210801','衢州':'101211001','宁波':'101210401','重庆':'101040100',
    '福州':'101230101','厦门':'101230201','宁德':'101230301','广州':'101280101','惠州':'101280301','梅州':'101280401',
    '汕头':'101280501','深圳':'101280601','珠海':'101280701','桂林':'101300501','梧州':'101300601','防城港':'101301401',
    '贵港':'101300801','玉林':'101300901','贵阳':'101260101','安顺':'101260301','都匀':'101260401','兴义':'101260906',
    '铜仁':'101260601','毕节':'101260701','六盘水':'101260801','遵义':'101260201','凯里':'101260501','昆明':'101290101',
    '红河':'101290301','呼伦贝尔':'101081000','乌兰浩特':'101081101','包头':'101080201','赤峰':'101080601','南昌':'101240101',
    '上饶':'101240301','抚州':'101240401','宜春':'101240501','鹰潭':'101241101','赣州':'101240701','景德镇':'101240801',
    '萍乡':'101240901','新余':'101241001','九江':'101240201','吉安':'101240601','武汉':'101200101','黄冈':'101200501',
    '荆州':'101200801','宜昌':'101200901','恩施':'101201001','十堰':'101201101','神农架':'101201201','随州':'101201301',
    '荆门':'101201401','成都':'101270101','自贡':'101270301','攀枝花':'101270201','银川':'101170101','海南':'101150401',
    '济南':'101120101','潍坊':'101120601','临沂':'101120901','青岛':'101120201','淄博':'101120301','西安':'101110101',
    '延安':'101110300','榆林':'101110401','铜川':'101111001','商洛':'101110601','安康':'101110701','汉中':'101110801',
    '宝鸡':'101110901','咸阳':'101110200','渭南':'101110501','太原':'101100101','乌鲁木齐':'101130101','石河子':'101130301',
    '昌吉':'101130401','吐鲁番':'101130501','库尔勒':'101130601','阿拉尔':'101130701','阿克苏':'101130801','台中':'101340401',
    '海口':'101310101','三亚':'101310201','东方':'101310202','临高':'101310203','澄迈':'101310204','儋州':'101310205',
    '昌江':'101310206','白沙':'101310207','常德':'101250601','益阳':'101250700','娄底':'101250801','张家界':'101251101',
    '怀化':'101251201','黔阳':'101251301','徐州':'101190801','淮安':'101190901','连云港':'101191001','常州':'101191101',
    '无锡':'101190201','盐城':'101190701','哈尔滨':'101050101','大庆':'101050901','齐齐哈尔':'101050201','大兴安岭':'101050701',
    '长春':'101060101','沈阳':'101070101','大连':'101070201','锦州':'101070701'
    }
    pickle.dump(m,n)
    n.close()
diyiip()


爬取全国天气
############################字符查找发法########################
import urllib.request
import pickle
k=open('D:\\地域IP.xiaofeige','rb')
city=pickle.load(k)
diqu=input('请输入你要查询天气的地区:')
D=city[diqu]

url = "http://www.weather.com.cn/weather/"+D+".shtml"
P1=-1

up = urllib.request.Request(url)
up.add_header('user-agent','自己填')

con = urllib.request.urlopen(up)
html = con.read().decode('utf-8')

 
tou = '''t clearfix"'''
wei = '''<em class="on">分时段预报</em>'''
P0 = html.find(tou)
P1 = html.find(wei,P0+3)
m=html[P0:P1]


print('\n\n***-------------------%s未来7天天气预报-------------------------***'% diqu)

for i in range(0,7):
    print('\n*******---------------------------------------------------------******')
    print('*******                         第%d天                           ******'% (i+1))                                                  
    print('*******---------------------------------------------------------******')
    #日期
    riqi1=m.find('<h1>')
    riqi2=m.find('</h1>',riqi1)
    riqi=m[riqi1+4:riqi2]
    print('日期:%s'% riqi)
    
    #天气
    tianqi1=m.find('p tit')
    tianqi2=m.find(' cl',tianqi1)
    tianqi=m[tianqi1+9:tianqi2-1]
    print('天气:%s'% tianqi)
    
    #风级
    fengji1=m.find('<i><')
    fengji2=m.find('</i',fengji1)
    fengji=m[fengji1+4:fengji2]
    print('风级:%s'% fengji)
    
    #温度
    wendu1=m.find('<span>')
    wendu2=m.find('</span>/<i>',wendu1)
    zuigaowendu=m[wendu1+6:wendu2]
    zuidiwendu=m[wendu1+18:wendu2+14]
    print('最低温度:%s'% zuidiwendu)
    print('最高温度:%s'% zuigaowendu)
    
    #风向
    fengxiang1=m.find('span title="')
    fengxiang2=m.find('''" class="''',fengxiang1)
    fengxiang=m[fengxiang1+12:fengxiang2]
    print('风向:%s'% fengxiang)
    m=html[P0+290*i:P1]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值