zoukankan      html  css  js  c++  java
  • python 登陆一个网站

    今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本.

    原理:

    只要在发送http请求时,带上含有正常登陆的cookie就可以了。

    1.首先我们要先了解cookie的工作原理。

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。

    2.之后我们要获取到用户正常登录的cookie.

    python提供了cookieJar的库,只要把cookieJar的实例作为参数传到urllib2的一个opener里面。

    然后访问一次登录的页面,cookie就已经保存下来了。之后通过这个实例访问所有的页面都带有正常登陆的cookie了。

     1 #coding=utf-8
     2 import sys
     3 reload(sys)
     4 sys.setdefaultencoding('utf8')
     5 
     6 import urllib, urllib2, cookielib
     7 from bs4 import BeautifulSoup
     8 
     9 def loginHupu(url,username,password):
    10     cookie = cookielib.CookieJar()
    11     cookie_handler = urllib2.HTTPCookieProcessor(cookie)
    12     opener = urllib2.build_opener(cookie_handler)
    #伪装成一个正常的浏览器,避免有些web服务器拒绝访问 13 opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')] 14 15 #需要填充的表单数据 chrome浏览器下下可以F12-NETWORK查看 16 formData = { 17 'username': username, 18 'password': password, 19 } 20 data = urllib.urlencode(formData) 21 22 #以POST的方式访问登陆页面,访问之后cookieJar会自动保存cookie 23 opener.open(url,data) 24 #以带cookie的方式访问页面 25 page = opener.open(url) 26 27 soup = BeautifulSoup(page.read()) 28 29 return soup 30 if __name__ == '__main__': 31 soup = loginHupu('http://my.hupu.com','你自己的用户名','你的密码') 32 print soup.prettify()

    POST请求中的表单数据以及需要伪装的浏览器的数据都可以通过chrome浏览器查看,通过一些抓包工具应该也能看。

    参考链接:http://zoulc001.iteye.com/blog/1186962

      

  • 相关阅读:
    jQuery-封装的表单元素选择器
    jQuery-获取DOM元素的各类选择器
    jQuery-外部引用和直接引用
    数据库-查询平均成绩大于60分的同学的学号和平均成绩
    数据库-查询“001”课程比“002”课程成绩高的所有学生的学号
    ps让图片背景透明
    echarts中饼图的legend自定义icon图片(扇形为例)
    获取bootstrap模态框点击的对应项(e.relatedTarget.dataset)
    echarts属性的设置(完整大全)
    小程序获取地理位置授权
  • 原文地址:https://www.cnblogs.com/sdu20112013/p/3845245.html
Copyright © 2011-2022 走看看