• Python-爬虫-requests库用语post登录


    requests库很强大,支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。

    可以发送无参数的get请求,也可以发送有参数的get请求,修改headers等等。

    这里主要展发送post请求,通过data参数来传递。

    比如:登录chinaunix网站,通过登录名、密码来登录。

    通过查看chinaunix网站源码,可以看到登录页面的网址是:

    http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc

    不同的电脑登录网址可能不一样,请查看具体的网页源代码。

    为了应对网站的反爬虫,可以修改headers来模拟网页登录。具体如下:

    import requests
    
    conn = requests.session()
    url = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc'
    postdata = {
        ‘username’:’***’,
        ‘password’:’***'
    }
    headers = {
                'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'}
    rep = conn.post(url, data=postdata,headers=headers)
    with open('1.html', 'wb') as f:
        f.write(rep.content)
    

    代码中的登录名和密码换成自己提前注册好的,否则登录不上。

    requests库自动保存cookie,不用再单独设置。

    import requests
    
    conn = requests.session()
    url = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc'
    postdata = {
        'username':'zhaoxn04',
        'password':'wobugaosuni2004'
    }
    headers = {
                'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'}
    rep = conn.post(url, data=postdata,headers=headers)
    with open('1.html', 'wb') as f:
        f.write(rep.content)
    
    url1 = 'http://bbs.chinaunix.net/thread-4246512-1-1.html'
    rep1 = conn.get(url1, headers=headers)
    with open('2.html', 'wb') as f:
        f.write(rep1.content)
    
  • 相关阅读:
    window系统中,解决Pycharm 文件更改目录后,执行路径未更新问题(转)
    yum安装软件报错–skip-broken(卸载的时候一直报错:未安装软件包)
    selenium之Chrome浏览器与chromedriver对应关系和下载
    Python 第三方库 批量下载安装包,离线批量安装Python第三方库
    UIpath 循环读取IMAP邮件,并保存附件
    UIpath 中如何使用 正则表达式
    用python实现队列,堆栈
    python-反射
    Python基础-父类对子类的约束
    Python基础-类的继承顺序
  • 原文地址:https://www.cnblogs.com/fredkeke/p/7000687.html
Copyright © 2020-2023  润新知