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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
简单的编程0基础下Python入门指引
Apr 01 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
Python内置函数delattr的具体用法
Nov 23 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
Python logging设置和logger解析
Aug 28 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
PyTorch中的Variable变量详解
Jan 07 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
Django权限控制的使用
Jan 07 Python
Python3爬虫RedisDump的安装步骤
Feb 20 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&amp;java(二)
2006/10/09 PHP
php生成缩略图的类代码
2008/10/02 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
Office DEPOT法国官网:欧迪办公用品采购
2018/01/03 全球购物
英国领先的瓷砖专家:Walls and Floors
2018/04/27 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
大一军训感言
2014/01/09 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
医院义诊活动总结
2014/07/04 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
工作所在部门证明
2014/09/21 职场文书
家长通知书家长意见
2015/06/03 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL