Python 自动登录网站(处理Cookie)

Python代码   收藏代码
  1. def login():  
  2.     cj = cookielib.CookieJar()  
  3.     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))  
  4.     login_url = r'http://zhixing.bjtu.edu.cn/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1'  
  5.     login_data = urllib.urlencode({'cookietime''2592000''handlekey''ls''password''xxx',  
  6.             'quickforward''yes''username''digiter'})  
  7.     opener.open(login_url, login_data)  
  8.     return opener  


返回以后只需要设置url和data就可以Post了。
注意不要在request里设置header,这是因为cookie也是header,如果设置header会导致没有cookie,也就没有登录

Python代码   收藏代码
  1. request = urllib2.Request(  
  2.         url=r'http://zhixing.bjtu.edu.cn/forum.php?mod=post&action=newthread&fid=601&extra=&topicsubmit=yes',  
  3.         data=param  
  4.     )  
  5.     print opener.open(request).read()  


轻松搞定设置Discuz X主题分类的功能(cookie要模拟浏览器,这里是模仿firefox)
Python代码   收藏代码
  1. # -*- coding: utf-8 -*-  
  2. ''''' 
  3. Created on Dec 24, 2011 
  4.  
  5. @author: rush 
  6. '''  
  7. import urllib, urllib2, cookielib  
  8. import os, time  
  9.   
  10. headers = []  
  11.   
  12. def login():  
  13.     cj = cookielib.CookieJar()  
  14.     opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))  
  15.     login_url = r'http://zhixing.bjtu.edu.cn/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1'  
  16.     login_data = urllib.urlencode({'cookietime''2592000''handlekey''ls''password''xxx',  
  17.             'quickforward''yes''username''GuoYuan'})  
  18.     opener.addheaders = [('Host''zhixing.bjtu.edu.cn'),  
  19.                        ('User-Agent''Mozilla/5.0 (Ubuntu; X11; Linux i686; rv:8.0) Gecko/20100101 Firefox/8.0'),  
  20.                        ('Accept''text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'),  
  21.                        ('Accept-Language''en-us,en;q=0.5'),  
  22.                        ('Accept-Encoding''gzip, deflate'),  
  23.                        ('Accept-Charset''ISO-8859-1,utf-8;q=0.7,*;q=0.7'),  
  24.                        ('Connection''keep-alive'),  
  25.                        ('Referer''http://zhixing.bjtu.edu.cn/forum.php'),]  
  26.     opener.open(login_url, login_data)  
  27.     return opener  
  28.   
  29. if __name__ == '__main__':  
  30.     opener = login()  
  31.   
  32.     url = r'http://zhixing.bjtu.edu.cn/forum.php?mod=topicadmin&action=moderate&optgroup=2&modsubmit=yes&infloat=yes&inajax=1'      
  33.     data = {'fid''601''formhash''0cdd1596''frommodcp''''handlekey''mods',  
  34.              'listextra''page%3D62''moderate[]''496146''operations[]''type''reason''...',  
  35.              'redirect': r'http://zhixing.bjtu.edu.cn/thread-496146-1-1.html''typeid''779'}  
  36.     data2 = [(k, v) for k,v in data.iteritems()]  
  37.       
  38.     cnt = 0  
  39.     for tid in range(493022496146 + 1):  
  40.         cnt += 1  
  41.         if cnt % 20 == 0print  
  42.         print tid,  
  43.           
  44.         data2.append(('moderate[]', str(tid)))  
  45.         if cnt % 40 == 0 or cnt == 496146:  
  46.             request = urllib2.Request(url=url, data=urllib.urlencode(data2))  
  47.             print opener.open(request).read()  
  48.             data2 = [(k, v) for k,v in data.iteritems()] 

### 回答1: Python是一种高级编程语言,有着广泛的用途,包括自动登录网站。要实现Python自动登录网站,需要遵守一些步骤。 首先,需要使用Python的Requests库,简化网站登录过程。使用这个库可以模拟登录表单数据和Cookies,从而让Python模拟浏览器的行为,从而实现自动登录网站。 接下来,在Python中提取表单输入字段和网站登录URL。通过分析网站登录页面的HTML代码,可以找到需填写的表单字段,从而编写代码请求网站。 最后,处理Cookies,验证登陆是否成功。如果登录成功,网站会把一个Cookies发送到浏览器,Python 可以使用一个Cookie Jar来来维护会话信息,从而确保我们可以访问已登录的页面。 Python自动登录过程可以自动化化处理一些重复的网络操作,从而达到高效、便捷的端拱效果。相比手动操作,Python自动登录网站可以省去繁琐的操作,将更多时间用于更加有意义的任务中。 ### 回答2: Python自动登录网站相对于手动登录网站有着很大的优势,它可以免去繁琐的操作和输入,缩短时间,也可以减少了人力消耗、减轻了工作压力,提高了工作效率。实现Python自动登录网站大致有以下几个步骤: 1. 导入selenium库:使用selenium库可以模拟人的操作,实现自动化。 ``` from selenium import webdriver ``` 2. 打开浏览器:使用selenium库打开Google或Firefox浏览器。 ``` browser = webdriver.Chrome() ``` 3. 输入网址:使用打开的浏览器打开要自动登录网站的网址。 ``` url = 'https://www.example.com' browser.get(url) ``` 4. 获取登录页面元素:使用selenium的find_elements_by_css_selector或其他定位方式查找登录页面的相关元素,如用户名、密码、登录按钮等。 ``` login_button = browser.find_element_by_id('login_button_id') username = browser.find_element_by_id('username_id') password = browser.find_element_by_id('password_id') ``` 5. 填写登录信息:使用send_keys函数向获取的元素输入用户名和密码。 ``` username.send_keys('your_username') password.send_keys('your_password') ``` 6. 点击登录按钮:使用click函数点击登录按钮。 ``` login_button.click() ``` 7. 检查是否登录成功:使用selenium的find_element_by_css_selector或其他定位方式查找已登录用户身份的相关元素,如用户名、头像等。 ``` username_element = browser.find_element_by_css_selector('div.username') if username_element.text == 'your_username': print('login success') else: print('login fail') ``` 以上就是使用Python自动登录网站的主要步骤,当然还有很多细节需要处理,如验证码等,但在这些步骤的基础上就可以实现大部分网站自动登录。 ### 回答3: Python自动登录网站,主要是利用Python的模拟登录技术。我们可以使用Python内置的urllib或requests库来实现模拟HTTP请求和响应,进而实现用户的登录。 首先,我们需要了解目标网站登录流程,定位登录页面和对应登录表单,以及要传递的登录参数等。可以使用开发者工具(如Chrome的开发者工具)或网络抓包工具(如Burp Suite)等来获取登录所需的信息。 接下来,我们就可以使用Python请求库模拟一个HTTP请求,发送登录数据表单。与此同时,我们还需要处理一些可能出现的验证码或其他验证内容。 如果登录成功,我们就可以使用Python库访问登录后的页面,并在其中查找所需信息。 其中,我们可以使用Python的Selenium库来自动化浏览器操作,帮助我们解决一些JavaScript反爬虫和动态加载内容等问题。 需要注意的是,自动登录网站容易被误解为恶意攻击,因此在进行此类操作前,需要获得网站的授权或遵守网站的使用规则。同时,也需要遵守相关法律法规,以保证使用的合法性和合规性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值