OpENer

教你用Python实现论坛自动签到,有趣

只愿长相守 提交于 2020-08-17 16:38:14
话不多说,直接上代码吧。 # ! /usr /bin /env python # - * - coding : utf -8 - * - __author__ = 'poppy' ''' dakele bbs sigin ''' import sys import urllib2 import urllib import requests import cookielib import json from pyquery import PyQuery as pq import logging logging . basicConfig (level =logging .DEBUG ) reload (sys ) sys . setdefaultencoding ( "utf8" ) class Dakele (object ) : def __init__ (self ,name ,password ) : self .name = name self .password = password self .cj = cookielib . LWPCookieJar ( ) self .opener = urllib2 . build_opener (urllib2 . HTTPCookieProcessor (self .cj ) ) urllib2 . install

用Python爬虫爬取广州大学教务系统的成绩(内网访问)

青春壹個敷衍的年華 提交于 2020-08-17 14:59:14
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1、什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{}之前的部分就是“选择器”。 “选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。 可参考: http://www.w3school.com.cn/cssref/css_selectors.asp http://www.ruanyifeng.com/blog/2009/03/css_selectors.html 2、常用的三种网页抓取方法(例子可能不可用,只要看方法就可以了) 正则表达式: 1 # -*- coding: utf-8 -*- 2 3 import urllib2 4 import re 5 6 7 def scrape(html): 8 area = re.findall( ' <tr id="places_area__row">.*?<td\s*class=["\']w2p_fw["\']>(.*?)</td> ' , html)[0] 9 return area 10 11 12 if __name__ == ' __main__ ' : 13 html = urllib2.urlopen( ' http://example

两个html窗口间利用JavaScript通信

a 夏天 提交于 2020-08-10 18:53:22
场景:当A页面打开B页面,在B页面操作后,A页面需要同步变更数据时 A 页面 ,http://127.0.0.1:10001/A.html var domain = 'http://127.0.0.1:10001'; window.open('http://127.0.0.1:10001/B.html'); window.addEventListener('message', function (event) { if (event.origin !== domain) return; console.log('message received: ' + event.data, event); }, false); B 页面 ,http://127.0.0.1:10001/B.html,opener是当前窗口的打开者引用 var domain = 'http://127.0.0.1:10001'; window.opener.postMessage("success", domain); window.close(); 如果是需要A打开B的同时向B中发送数据时 // 发送数据方 var domain = 'http://127.0.0.1:10001'; var myPopup = window.open('http://127.0.0.1:10001/B.html');

saltstack 实践

与世无争的帅哥 提交于 2020-08-10 10:12:05
salt 多master搭建及salt-api调用 环境: OS:CentOS6.7 Python3.6 + pip Saltstack 3001 Master: A c61 192.168.122.201 C c63 192.168.122.203 Slave: B c62 192.168.122.202 D c64 192.168.122.204 安装软件: pip install salt cherrypy 一、 salt多master实践 A/C: salt-master B/D: /etc/salt/minion master: - c61 - c63 id: 192.168.122.202 (B) id: 192.168.122.204 (D) 启动 salt-minion A/C: salt-key -A (接受B/D加入) 完成搭建 1.系统yum安装的saltstack 2015.5.11版本,搭建多master不成功 2.当前单master的minion节点,修改配置后,需要重启salt-minion服务,新master做好信任 二、 salt-api搭建 $ salt-call --local tls.create_self_signed_cert /etc/salt/master default_include: master.d/*.conf /etc

UnicodeDecodeError: &apos;utf-8&apos; codec can&apos;t decode byte 0xb1 in position 0: invalid start byte问题出现

浪子不回头ぞ 提交于 2020-08-09 18:45:32
1.上一篇聚类时碰到的问题 显示这行读取编码问题: fr = open (filePath, 'r+' ) 2.源码添加了encoding=‘utf-8’ 好吧,人家就是说这个不行(没仔细看报错) 3.编码给‘gbk’ TypeError: an integer is required (got type str) 4.终于反应过来要去查查open() open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 5.最后格式 fr = open (filePath, 'r+',1,'gbk' ) 成功读出汉字了 2020-06-08 来源: oschina 链接: https://my.oschina.net/u/4399604/blog/4304683

4种弹框

泪湿孤枕 提交于 2020-08-05 17:24:25
1、最基本的三种弹窗 alert,confirm,prompt <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js三种弹窗</title> </head> <body> <span onclick="doson(1)">alert()</span> <span onclick="doson(2)">confirm(option)</span> <span onclick="doson(3)">prompt(option1,[option2])</span> </body> <script> function doson(num){ if(num == 1){ alert("这是一Alert"); }else if( num == 2){ //返回一个布尔值,点击确定返回true,点击取消返回false var isbeauty = confirm("准备好,游山玩水了吗?"); if(isbeauty){ alert("OK, Let's Go now !"); }else{ alert("不再考虑考虑了"); } }else{ //option1:数据类型是字符串;是弹框里的提示文字。 //option2:数据类型是字符串;是弹框里输入框的value预留值,第二个参数为空时,弹框输入框中的值为空。 /

遇到网站的反爬虫机制,那么我们应该来如何应对呢?

霸气de小男生 提交于 2020-08-04 16:40:18
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 加企鹅群695185429即可免费获取,资料全在群文件里。资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等 1、使用代理 适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。 这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。 proxies = { ' http ' : ' http://XX.XX.XX.XX:XXXX ' } Requests: import requests response = requests.get(url=url, proxies= proxies) Urllib2: import urllib2 proxy_support = urllib2.ProxyHandler(proxies) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) # 安装opener,此后调用urlopen(

CSharp 超大文件上传和断点续传的实现

大城市里の小女人 提交于 2020-07-29 09:14:23
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现。 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压。 ASP.NET页面设计:TextBox和Button按钮。 TextBox中需要自己受到输入文件夹的路径(包含文件夹),通过Button实现选择文件夹的问题还没有解决,暂时只能手动输入。 两种方法:生成rar和zip。 1.生成rar using Microsoft.Win32; using System.Diagnostics; protected void Button1Click(object sender, EventArgs e) { RAR(@"E:\95413594531\GIS", "tmptest", @"E:\95413594531\"); } /// /// 压缩文件 /// /// 需要压缩的文件夹或者单个文件 /// 生成压缩文件的文件名 /// 生成压缩文件保存路径 /// protected bool RAR(string DFilePath, string DRARName,string DRARPath) { String therar; RegistryKey theReg; Object theObj; String theInfo;

python每日一练之读写txt文件

谁说胖子不能爱 提交于 2020-07-27 14:50:22
1.获取文件操作对象   读写文件就是请求操作系统打开一个文件对象,然后通过系统提供的接口读写数据。 f = open(file, mode= ' r ' , buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 上述代码获取了一个文件对象f,注意操作结束后,要f.close()关闭文件 file:文件的路径 mode:文件打开模式 常见的模式有 模式 描述 b 二进制模式 r 以只读方式打开,指针放在文件开头 r+ 读写方式打开,指针放在文件开头 rb 已二进制打开一个文件,只读 rb+ 二进制打开一个文件,读写 w 写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 w+ 读写的方式打开一个文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 wb+ 读写的方式打开一个二进制文件,如果文件已经存在,则会被clear,如果不存在,会创建一个文件 a 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 a+ 追加的方式打开文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 ab+ 追加的方式打开二进制文件,如果文件已存在,指针会放在文件末尾,否则创建一个文件 buffering:设置缓冲

js window.open 页面之间的通讯(不同源)

半世苍凉 提交于 2020-05-09 06:35:27
一:a页面 1:打开b页面 let isB= window.open('b.html','b'); 2:a页面发送消息给b页面 isB.postMessage("dsddfsdf", 'b.html'); 二: b页面 b页面接受a页面的消息 window.onload = function() { window.addEventListener('message', function(event) { //可以通过event.origin 判断消息来源 console.log(event.data,'a发送来的消息'); //作为接受到消息的回应 同样给a页面发送一个消息 //如果a页面没有关闭 if(window.opener){ window.opener.postMessage('我是b,我收到消息了','a.html'); }else{ console.log("a页面关闭了啊"); } }); } LAST: 在a页面同样添加 接受消息的事件 接受b接受消息的反馈信息 window.onload = function() { window.addEventListener('message', function(event) { //其他操作 }) }    来源: oschina 链接: https://my.oschina.net/u/4396177/blog