python实现自动登录


Posted in Python onSeptember 17, 2018

利用python,可以实现填充网页表单,从而自动登录WEB门户。

(注意:以下内容只针对python3)

环境准备:

(1)安装python
(2)安装splinter,下载源码 python setup install

#coding=utf-8
import time
from splinter import Browser
 
def login_mail(url):
  browser = Browser()
  #login 163 email websize
  browser.visit(url)
  #wait web element loading
  #fill in account and password
  browser.find_by_id('username').fill('你的用户名称')
  browser.find_by_id('password').fill('你的密码')
  #click the button of login
  browser.find_by_id('loginBtn').click()
  time.sleep(5)
  #close the window of brower
  browser.quit()
 
if __name__ == '__main__':
  mail_addr ='http://reg.163.com/'
  login_mail(mail_addr)

Tips:

(1)如果需要修改web的html属性,可以使用:js

browser.execute_script('document.getElementById("Html属性ID").value = "在此提供默认值"')

(2)browser = Browser()

不指定的情况下,浏览器驱动是火狐(Firefox),可以指定其他:browser = Browser(‘chrome'),需要下载对应的驱动程序

1.python3浏览页面

#coding=utf-8
import urllib.request
import time
#在请求加上头信息,伪装成浏览器访问
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
chaper_url='http://XXX'
 
vist_num=1
while vist_num<1000:
 if vist_num%50==0:
  time.sleep(5)
 print("This is the 【 "+str(vist_num)+" 】次尝试")
 req = urllib.request.Request(url=chaper_url, headers=headers) 
 urllib.request.urlopen(req).read() #.decode('utf-8')
 vist_num+=1

2.python 多线程

#coding=utf-8
import threading #导入threading包
from time import sleep
import time
 
def fun1(): 
  print ("Task 1 executed." )
  time.sleep(3)
  print ("Task 1 end." )
 
def fun2():
  print ("Task 2 executed." )
  time.sleep(5)
  print ("Task 2 end." )
  
threads = [] 
t1 = threading.Thread(target=fun1) 
threads.append(t1)
t2 = threading.Thread(target=fun2)
threads.append(t2)
 
for t in threads:
  # t.setDaemon(True) 
  t.start()

3.利用python下载百度图片

#coding=utf-8
import urllib.request
import re
 
def getHtml(url):
  page = urllib.request.urlopen(url)
  html = page.read()
  return html
 
def getImg(html):
  reg = r'src="(.+?\.jpg)"'
  imgre = re.compile(reg)
  html=html.decode('utf-8')
  imglist = re.findall(imgre,html)
  x = 0
  for imgurl in imglist:
    urllib.request.urlretrieve(imgurl,'%s.jpg' % x)
    x+=1
    print(str(x))

html = getHtml("http://image.baidu.com/channel?c=%E6%91%84%E5%BD%B1&t=%E5%85%A8%E9%83%A8&s=0")
 
print(getImg(html))

效果:

python实现自动登录

官网:链接地址

官方示例程序:链接地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
Python编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
Python使用gRPC传输协议教程
Oct 16 Python
Python拼接字符串的7种方法总结
Nov 01 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
Python 私有化操作实例分析
Nov 21 Python
Python文件操作基础流程解析
Mar 19 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
python中的列表和元组区别分析
Dec 30 Python
python发送告警邮件脚本
Sep 17 #Python
python实现zabbix发送短信脚本
Sep 17 #Python
python通过zabbix api获取主机
Sep 17 #Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 #Python
python实现Zabbix-API监控
Sep 17 #Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 #Python
Python从使用线程到使用async/await的深入讲解
Sep 16 #Python
You might like
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
input 输入框内的输入事件详细分析
2010/03/17 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
前端性能优化及技巧
2016/05/06 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
pandas的object对象转时间对象的方法
2018/04/11 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
应届毕业生个人求职自荐信
2014/01/06 职场文书
副总经理岗位职责
2014/03/16 职场文书
文体活动总结范文
2014/05/05 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
迎新生标语大全
2014/10/06 职场文书
给客户的检讨书
2014/12/21 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技