美文网首页python爬虫爬虫python
Python爬虫入门-表单提交与模拟登录

Python爬虫入门-表单提交与模拟登录

作者: 秦子帅 | 来源:发表于2018-05-29 09:29 被阅读100次

    前言

    今天主要讲两个方面:

    • 利用Request库进行POST请求表单交互

    • cookie实现模拟登录网站

    Requests实现POST请求

    今requests可以以多种形式进行post请求,比如form表单形式、json形式等。今天主要以表单形式举例:

    Reqeusts支持以form表单形式发送post请求,只需要将请求的参数构造成一个字典,然后传给requests.post()的data参数即可。

    示例网站:豆瓣网:https://www.douban.com

    有两种方式可以查询提交表单的字段:

    • 通过查询源代码的form标签,input标签

    • 通过浏览器的Network项查询

    第一种:

    首先我们找到登录的元素,在输入账号处选中-->右键-->检查

    然后直接查询网页源代码去找到上面的部分,根据标签来观察提交的表单参数,这里强调一下:

    form标签和form标签下的input标签非常重要,form标签中的action属性代表请求的URL,input标签下的name属性代表提交参数的KEY。

    代码参考如下:

    
    import  requests
    
    url="https://www.douban.com/accounts/login"     #action属性
    params={
       "source":"index_nav",               #input标签下的name
       "form_email":"xxxxxx",              #input标签下的name
       "form_password":"xxxxxx"              #input标签下的name
    
    }
    html=requests.post(url,data=params)
    print(html.text)
    
    

    运行后发现已登录账号

    第二种:

    通过浏览器Network项查询表单参数:

    点击右键-->检查-->选择Network

    然后手动输入账号和密码登录,此时显示加载了文件,选择加载的第一个文件:

    选中后,查看Headers字段下的数据,会发现请求的URL

    往下拉,会发现字段参数:

    然后再按照上面的代码写一下就可以了。

    Cookie模拟登录

    Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

    我们可以通过手动登录后,查看浏览器的Network选项找到cookie值,记住cookie值不要透露出去。

    操作步骤:

    右键-->检查-->选择Network-->手动登录-->在加载文件中找到本网址的Name

    得到cookie和URL之后,把cookie添加到headers中,运行,代码如下:

    
    import  requests
    
    url="https://www.douban.com/"
    
    header={"Cookie":'XXXXXXXXXXXXXXXX'} #cookie值不要泄露
    html=requests.get(url,headers=header)
    print(html.text)
    
    

    希望对新人有所帮助!

    本文参考了网上信息和《从零开始学习Python网络爬虫》


    欢迎关注我的微信公众号【秦子帅】,带你一起了解Android、Python、Java技术


    相关文章

      网友评论

        本文标题:Python爬虫入门-表单提交与模拟登录

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