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

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

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 天气)