python 利用requests模块会话session模拟登录URL网址下载数据

PASSWORD = '[{"userId":"**","password":"**"}]'


def getData():  
    s = requests.Session()#创建一个session对象
    s.keep_alive = False  #保持一个长连接
    s.headers.update({'Connection': 'keep-alive'}) 
    for i in range(0,5):
        try:
            s.post('URL',data=PASSWORD)#该URL为登录页面的URL
            s.headers.update({'Content-Type': 'application/x-www-form-urlencoded'})
            break
        except requests.exceptions.ConnectionError:
            time.sleep(1)
            continue   


    s.headers.update({'Content-Type': 'application/x-www-form-urlencoded'}) 
      
    payload = ''   
    for count in range(0,5):
        print count
        try:
            rsp = s.post('URL',data=payload)#该URL为需要获取数据页面的F12请求正文内容
            #print "rsp",rsp
            break
        except requests.exceptions.ConnectionError:
            time.sleep(1)
            continue 
    #print "rsp",rsp
    
    exportfile ="D:/data.xls"


    with open(exportfile,'wb') as out_file:
        for chunk in rsp.iter_content():#将文本流保存到文件
            out_file.write(chunk)
    #若数据无效,则删除文件
    f = open(exportfile, 'rb')
    lines = f.read()
    isinvalid=re.search("javascript",lines)
    if (len(lines)==0) or (isinvalid is not None):
        print "this is empty data,system will delete it"
        f.close()
        os.remove(exportfile)
    else:
        print "this is valid data"
        time.sleep(40)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值