二期python爬虫作业No.3 天气

作者: 只是不在意 | 来源:发表于2017-06-02 21:41 被阅读0次

    在程工一边开心的团建的时候,赶紧赶他布置的作业:
    这个作业已经有好几个同学完成了,所以我其实就是拿来抄的...

    import requests
    from lxml import etree
    import random
    import json
    import csv
    
    Headers = {
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
                 'Referer':'http://www.weather.com.cn/weather40d/101091101.shtml',
              }
    

    天气网也有反爬,所以请求头这里要有Referer,“因为这是浏览器发出请求时,会通过Referer告诉服务器我是从哪个页面链接过来的,有些网站会对这个做验证,主要时为了防止别人盗链的问题。不是的话就会403禁止访问服务器。”——引自chaosmind

    url= 'http://d1.weather.com.cn/calendar_new/2017/101091101_201706.html'
    html= requests.get(url,headers=Headers).content
    infos=json.loads(html[11:])
    

    然后就是找包,天气网也是json包加载的。不过切片是第一次遇到,如果不是大家提醒,这个[11:]估计也要坑上一会儿。
    不过人品始终是守恒的,headers=Headers()居然被我昏了头加个括号,报错“dict”is not
    callable,对着别人的功课都检查不出来,折腾了快半小时...

    import os
    os.chdir('E:')
    csvFile = open("weather.csv",'w+')
    try:
        writer = csv.writer(csvFile)
        writer.writerow(['date','max','min','\n'])
        for item in infos:
            date=item['date']
            max=item['max']
            min=item['min']
            writer.writerow([date,max,min])
    finally:
        csvFile.close()
    

    写入csv文件以前有练过,没有什么问题,收工。
    天气网的只有40天包,迟点加个循环,多爬几个月,做个数据分析。再供大家参考。

    相关文章

      网友评论

        本文标题:二期python爬虫作业No.3 天气

        本文链接:https://www.haomeiwen.com/subject/ecnsfxtx.html