很简单的两步: 1.获取网页源代码 2.利用正则表达式提取出图片地址 3.下载 #!/usr/bin/python #coding=utf8 import re # 正则表达式 import urllib # 获取网页源代码 # 用正则表达式写一个小爬虫用于保存贴吧里的所有图片 # 获取网页源代码 def getHtml(url): page = urllib.urlopen(url) # 打开url,返回页面对象 html = page.read() # 读取页面源代码 return html…
写一个 setter 方法用于完成 @property (nonatomic, retain) NSString *name 写一个 setter 方法用于完成 @property (nonatomic, copy) NSString *name 答: // retain - (void)setName:(NSString *)str { [str retain]; [_name release]; _name = str; } // copy - (void)setName:(NSString…
学习了一段时间的web前端,感觉有点看不清前进的方向,于是就写了一个小爬虫,爬了51job上前端相关的岗位,看看招聘方对技术方面的需求,再有针对性的学习. 我在此之前接触过Python,也写过一些小脚本,于是决定用Python来完成这个小项目. 首先说说一个爬虫的组成部分: 1.目标连接,就是我需要爬取信息的网页的链接: 2.目标信息,就是网页上我需要抓取的信息: 3.信息梳理,就是对爬取的信息进行整理. 下面我来说说整个爬虫的设计思路: 总体思路:以“前端”关键字进行搜索,把搜索结果上面每一个…
原文:http://norvig.com/spell-correct.html 翻译:http://blog.youxu.info/spell-correct.html 怎样写一个拼写检查器 Peter Norvig 翻译: Eric You XU 上个星期, 我的两个朋友 Dean 和 Bill 分别告诉我说他们对 Google 的快速高质量的拼写检查工具感到惊奇. 比如说在搜索的时候键入 [speling], 在不到 0.1 秒的时间内, Google 会返回: 你要找的是不是 [spell…
前言: 软工的一个小作业:实现"黄金分割小游戏", 需要结对编程,队友:陈乐云    共用时两天. 早期思路设计: 采用键值对的形式,以Map作为存储结构.优点:能够将数据与用户对应,缺点:采用java实现过于复杂,工程量过大,需要消耗大量资源,类型转换容易出错. 后期思路设计: 采用二维数组:第一行用于存储用户输入原始数据,第二行用于存储中间数据(第一行的与G值做差的绝对值),第三行用于保存用户得分. 优点:实现简单,易于运算 分工: 前期:陈乐云负界面设计 和 代码的检查     …
一.背景 最近在看一个开源框架的源码,涉及到的内容非常杂乱,有的函数不知道是在什么时候被谁给调用了?调用的时候传入了什么参数?为了解决这个问题,写了一个小的装饰器. 二.实现 这个装饰器函数主要参考了logging模块中的findCaller,源码如下: def findcaller(func): def wrapper(*args,**kwargs): import sys f=sys._getframe() filename=f.f_back.f_code.co_filename linen…
本文内容 涞源于  罗刚 老师的 书籍 << 自己动手写网络爬虫一书 >> ; 本文将介绍 1: 网络爬虫的是做什么的?  2: 手动写一个简单的网络爬虫; 1: 网络爬虫是做什么的?  他的主要工作就是 跟据指定的url地址 去发送请求,获得响应, 然后解析响应 , 一方面从响应中查找出要查找的数据,另一方面从响应中在解析出新的URL路径, 然后继续访问,继续解析;查找需要的数据和继续解析出新的URL路径  . 这就是网络爬虫主要干的工作.  下面是流程图: 通过上面的流程图 能…
本节主要是说下怎样识别一个小程序的用户,需要用什么数据来做标识呢: 我们应该都知道判断是不是一个用户大部分都是通过userid来判断,如果这个用户访问的应用发送了一个请求,把userid之类的数据发给了服务器,我们可以通过这个字段来确定这是不是一个用户,如果没有这个值的话可能就是一个游客了,但是在微信里的小程序我们怎样拿到这样的id呢? 其实在小程序里当用户访问的时候我们可以借助小程序的api能力获取到一个针对当前小程序的用户id ,他是openid,而且针对同一个小程序同一个人是永远不会改变的…
一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部分也是可以用于项目中的,假设项目里确实不需要log4j/logback之类的日志组件的时候: 二:实现方式 1.利用LinkedList作为MQ(还可以用jdk自带的LinkedBlockingQueue,不过这个Demo主要是为了更好的理解原理因此写的比较底层): 2.利用一个Daemon线程作为…
微信小程序打开另一个小程序,有两种方法:1.超链接:2.点击按钮. 全局配置: 跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下: App.json { ... "navigateToMiniProgramAppIdList": [ "wxe5f52902cf4de896" ] } 否则会弹出以下错误提示: 超链接实现跳转到小程序: demo.wxml <navigator target="miniProgram&quo…
添加与新增一些小玩意的1.0.3版本:传送门 各位带哥,这不是你们要的c++.java.c#作业哈 课上要求做个小作业,学生管理考勤系统,原本想着是个练手的好机会,结果只证实了我还是个弟中弟. 设想的功能只写了1/3左右,其余的大多数由于技术未涉及/基础不扎实(闭包问题,其实正好高程三才开始读到闭包)等被删了 原本设想的功能里包括点击“结束考勤”按钮后能把没有变色的按钮的名字收集起来,结果卡死在闭包问题上了. 暂且先上传这一版本,有个想法是等以后学的更深更深一些把这个开发成一个真正的,有后台.有…
0x00.前言 协会要举办信息安全大赛了,初赛的web+crypto+misc主要由我来出题,注册.比赛的平台也都要由我来写    上周日完成了注册页面的后端(前端由另一个女生写的),前天下午大概完成了比赛平台的所有基本功能(前端也是由我写的...)    独立写完比赛平台,有些收获打算写在这里,先留个坑,等比赛完了再填坑 后端:PHP 数据库:MySQL 0x01.登录页面 登录界面的前端是直接找的一个比较简朴的框架. 后端检验用户的输入,队伍名是只允许出现中英文.数字及下划线的,我用的pre…
貌似很久没写程序了,随便用C语言实现吧 #include<stdio.h> #include<stdlib.h> int main(){ system("rundll32.exe user32.dll,LockWorkStation"); return 0; } 编译链接生成exe可执行文件 进入控制面板里面的管理工具,打开任务计划, 新建一个任务,在触发器里面设定每天定时启动,在操作里面选中刚编译好的exe程序.搞定…
一.正则表达式: (1).正则表达式是干什么的  正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. (2). 正则表达式的的语法 1.字符 1. \d    相当于[0-9]  匹配所有数字 正则表达式:\d 要匹配的字符:sjdksajdksj 2. \w   相当于[A-Za-z_]  匹配所有字符 正则表达式:\w 要匹配的字符:%sjd     k4…
PHP留言板说明 1.帮朋友做一个毕业设计,本科大学生,都不知道框架是什么...只能原生PHP写了. 2.这里主要是做一个学习笔记. 3.项目开始会杂乱无章,慢慢整理. 需求 (1)用户注册:用户实现注册,获取账号. (2)用户登陆:进行登录到页面. (3)用户注销:账号可注销. (4)留言发布:网友需要输入自己的相关信息进行留言. (5)管理员登录:管理员在进入登陆界面后,输入用户名和密码登陆,登陆后可以回复留言和删除留言. (6)管理员删除留言:管理员登陆后可删除留言,删除时需要弹出对话框确…
1.聊天室程序——客户端 客户端我也用了select进行I/O复用,同时监控是否有来自socket的消息和标准输入,近似可以完成对键盘的中断使用. 其中select的监控里,STDOUT和STDIN是已有规定的值了. Socket_setup函数负责进行对socket进行初始化完成connect 的过程,然后在主函数里无限循环检查sockfd和STDIN的缓冲区是否有新的消息 客户端程序较简单: #include <stdio.h> #include <stdlib.h> #inc…
为了更好的学习java,我打算下载个eclipse 地址:https://www.eclipse.org/downloads/packages/ 我们需要下载的版本是Eclipse IDE for Java Developers  根据操作系统是Windows.Mac还是Linux,从右边选择对应的下载链接. 下载好后解压 下载并安装完成后,第一次运行时,会让新建一个工作空间,我直接用了默认的路径在c盘用户下的workspace下 我们启动Eclipse,对IDE环境做一个基本设置: 选择菜单“…
引子 最近折腾node,最开始像无头苍蝇一样到处找资料,然而多数没什么卵用,都在瞎比比.在一阵瞎搞后,我来分享一下初步学习node的三个过程: 1 撸一遍NODE入门,对其有个基本的了解: 2 撸一遍cnode.js社区管理员写的包教不包会node课程,内容量相对于 NODE入门多了很多,特别是这个可能更注重实际项目的构建方式. 3 通读一遍朴灵的<node.js深入浅出>,配合着api一起看(还在继续..药不能停). 尽看书总是有一种茫然不知所措的感觉,就像手中有一把锋利的钢刀,却不知该如何…
一.背景: 在很多时候,应急会发现.卧槽,异常连接,只有一个域名或者IP. 怎么办?上防火墙看记录,查域名对应的记录累成狗,自己把之前的代码改了改,写了个小工具,一条命令查询DNS相关记录,也可以指定内网服务器查询. 二.分析思路: 1.首先排查一下流量通信情况,采集远端IP.域名.及其对应的解析记录. 2.国内推荐使用我们360,以及threatbook.还有老东家tianjipartner的的威胁情报源分析是否有关联威胁,如果有采取第一波止损措施,马上下策略隔绝断网.重要的机器可以直接先断了…
在微信小程序开发中,有时候swiper-view会出现显示不全的问题,我们可以用scoll-view来把它包裹下,但是要用scoll-view就一定要设置height,而我们经常是在页面中加的这个组件,要怎么知道它的高度呢?我找了好多答案,最终就整理如下: 整理下思路:就是在页面加载后去计算出页面中已知组件的所有高度和,然后再用页面整体大小减去这个高度和. 先讲一下如何获取页面总体高度吧.可以用wx.getSystemInfo(Object object)或wx.getSystemInfoSyn…
特别补充一句:软件可以一次性复制多个文件的文件名. Windows 中的复制文件名实在是有些不方便 ,需要点右键 "重命名"之后再点右键选择"复制"才可复制文件名.我以前用过一个软件,叫:"复制文件名CopyFilenames",这个小软件就是为解决这个问题而出现的,仅仅点右键选择"复制文件名"就 OK 了,并且可"粘贴文件名""复制文件名并删除",大大简化了我们的常用操作. 截图如下:…
因为我们需要用户扫码进入小程序,每一个货柜都有一个对应的二维码,当然每个二维码里的信息也不一样.用户扫码进入小程序之后,二维码的信息会以参数q带进去,而我们只能在onLoad事件中拿到这个参数, 但是获取到的信息是经过encodeURIComponent()编码的,注意不是encodeURI()编码的,所以需要用decodeURIComponent()解码,而不能用decodeURI(),这个在文档上没太说明白,见文档  mp.weixin.qq.com/debug/wxadoc/introdu…
在初步了解网络爬虫之后,我们接下来就要动手运用Python来爬取网页了. 我们知道,网络爬虫应用一般分为两个步骤: 1.通过网页链接获取内容: 2.对获得的网页内容进行处理 这两个步骤需要分别使用不同的函数库:requests和beautifulsoup4.所以我们要安装这两个第三方库. 我所用的编辑器是 Pycharm,它带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成等.本次安装第三方库是在Pycharm…
最近研究C#的爬虫写法,搞了半天,才在网上很多的写法中整理出了一个简单的demo(本人菜鸟,大神勿喷).一是为了自己记录一下以免日后用到,二是为了供需要朋友参考. 废话不多说,上代码 using HtmlAgilityPack; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.T…
public class Test { public void index() { String strWords = "Hello World My First Unit Test"; String[] words_Array = strWords.split(" "); Map<String,Integer> words_Map=new HashMap<String, Integer>(); int arrLength = words_A…
function getUrlParams(url){ let searchParam = url.split("?")[1]; let searchItemParams = searchParam.split("&"); let arr = {}; let json = {}; if(searchItemParams.length){ searchItemParams.forEach((item,index) => { arr[index] = it…
python 程序小测试 对之前写的程序做简单的小测试 ... # -*- encoding:utf-8 -*- ''' 对所写程序做简单的测试 @author: bpf ''' def GameOver(N, scoreA, scoreB): ''' function: 定义一局排球比赛的结束条件 N: 代表当前局次(第五局为决胜局) 前四局,每个队只有在赢得至少25分,且同时超过对方2分时才胜一局 第五局,每个队只有在赢得至少15分,且同时超过对方2分时才胜一局 return: 若比赛结束的…
Redola.Rpc 的一个小目标 Redola.Rpc 的一个小目标:20000 tps. Concurrency level: 8 threads Complete requests: 20000 Time taken for tests: 0.886 seconds Time per request: 0.044 ms (avg) Requests per second: 22573 [#/sec] (avg) Concurrency level: 8 threads Complete r…
写一个小程序,用来计算它包含的代码所需的耗时.虽然简单,测试代码是否耗时还是有点用的,不用重新写嘛~ import java.util.Date; import java.util.concurrent.TimeUnit; public class TimeLag { private Date start; private Date end; public TimeLag() { start = new Date(); } public String cost() { end = new Dat…
基于.NET开发分布式系统,经常用到Remoting技术.在测试驱动开发流行的今天,如果针对分布式系统中的每个Remoting接口的每个方法都要写详细的测试脚本,无疑非常浪费时间.所以,我想写一个能自动测试remoting接口的小工具InterfaceTester.而且,当分布式系统中的某个remoting接口出现bug时,该小工具可以提交需要模拟的数据,以便在调试remoting服务的环境中,快速定位和解决bug. InterfaceTester运行起来后的效果如下图: 1.如何使用 (1)首…