关闭
当前搜索:

一个简单的爬虫实例

1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。下载图片的步骤如下: 获取网页html文本内容;分析html中图片的html标签特征,用正则解析出所有的图片url链接列表;根据图片的url链接列表将图片下载到本地文件夹中。 2. urllib+re实现 #!/usr/bin/python # coding:utf-8 # 实现一个简单的爬虫,爬取百度贴吧图...
阅读(137) 评论(0)

Windows下的Jupyter Notebook 安装与自定义启动

安装jupyter Notebook之前先要安装python,安装python方法网上有很多,很简单,这里就不赘述了。 这是我自定义的Python 的安装目录 (D:\SoftWare\Python\Python36\Scripts) 1、Jupyter Notebook和pip   为了更加方便地写Python代码,还需要安装Jupyter notebook。 利用pip安装 ...
阅读(137) 评论(0)

解决pycharm无法导入本地包的问题(Unresolved reference 'XXX')

在用scrapy(python2.7)写爬虫的时候 from tutorail.items import DmozItem 这一行始终提示没有找到包,实际上已经在本地下载了。   也就是出现 Unresolved reference 'tutorial' 的问题。   当然,其实不只是爬虫,如果你初次导入包是应该也可能会遇见这个问题!   解决办法: 1.清除缓存并重启 ...
阅读(231) 评论(0)

Win系统下python3和python2同时安装并解决pip共存问题

特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。   使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。 1、下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,...
阅读(206) 评论(0)

浅谈navigator对象

(1) navigator.userAgent navigator.userAgent属性返回浏览器的User-Agent字符串,标示浏览器的厂商和版本信息。 下面是Chrome浏览器的userAgent。 navigator.userAgent // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko...
阅读(296) 评论(0)

浅谈window对象

在浏览器中,window对象(注意,w为小写)指当前的浏览器窗口。它也是所有对象的顶层对象。 “顶层对象”指的是最高一层的对象,所有其他对象都是它的下属。JavaScript规定,浏览器环境的所有全局变量,都是window对象的属性。 var a = 1; window.a // 1 上面代码中,变量a是一个全局变量,但是实质上它是window对象的属性。声明一个全局变量,就是...
阅读(347) 评论(0)

单线程模型

什么是单线程模型? 单线程模型指的是,JavaScript只在一个线程上运行。也就是说,JavaScript同时只能执行一个任务,其他任务都必须在后面排队等待。 注意,JavaScript只在一个线程上运行,不代表JavaScript引擎只有一个线程。事实上,JavaScript引擎有多个线程,单个脚本只能在一个线程上运行,其他线程都是在后台配合。 JavaScript之所以采用单线程,而不...
阅读(548) 评论(0)

JAvaScript中apply()和call()的区别

初学JavaScript时经常混淆apply()和call()的区别,现在就它们的做一下简单的描述。相同点:apply()和call()两个方法产生的作用是一样的,都用来改变当前函数调用的对象。不同点:apply()和call()方法调用的参数不同。下面细致分析下apply()和call()使用区别:call()的使用call([thisObj[,arg1[, arg2[, [,.argN]]]]...
阅读(559) 评论(0)

外观模式

外观模式概念:   外观模式是很常见。其实它就是通过编写一个单独的函数,来简化对一个或多个更大型的,可能更为复杂的函数的访问。也就是说可以视外观模式为一种简化某些内容的手段。   说白了,外观模式就是一个函数,封装了复杂的操作。 代码实现:   比如一个跨浏览器的ajax调用 function ajaxCall(type,url,callback,data){ // 根据当前浏览...
阅读(538) 评论(0)

代理模式

代理模式概念:   代理模式的中文含义就是帮别人做事,javascript的解释为:把对一个对象的访问, 交给另一个代理对象来操作.   代码实现:  比如我们公司的补打卡是最后是要交给大boss来审批的,但是公司那么多人,每天都那么多补打卡,那大boss岂不是被这些琐事累死。所以大boss下会有一个助理,来帮 忙做这个审批,最后再将每个月的补打卡统一交给大boss看看就行。 //...
阅读(536) 评论(0)

模板模式

模板模式概念: 定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗的讲,就是将一些公共方法封装到父类,子类可以继承这个父类,并且可以在子类中重写父类的方法,从而实现自己的业务逻辑。 代码实现: 比如前端面试,基本包括笔试,技术面试,领导面试,HR面试等,但是每个公司的笔试题,技术面可能不一样,也可能一样,...
阅读(2138) 评论(0)

策略模式

策略模式概念: 策略模式指的是定义一些列的算法,把他们一个个封装起来,目的就是将算法的使用与算法的实现分离开来。说白了就是以前要很多判断的写法,现在把判断里面的内容抽离开来,变成一个个小的个体。 代码实现: 代码情景为超市促销,vip为5折,老客户3折,普通顾客没折,计算最后需要支付的金额。 没有使用策略模式的情况: function Price(personType, price)...
阅读(3942) 评论(0)

观察者模式(发布订阅模式)

观察者模式概念:   定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新,也被称为是发布订阅模式。 它需要一种高级的抽象策略,以便订阅者能够彼此独立地发生改变,而发行方能够接受任何有消费意向的订阅者。 应用场景:     这个模式要先说应用场景,比较好理解。   打一个离我们比较近的一个场景,博客园里面有一个订阅的按钮(貌似有bu...
阅读(1518) 评论(0)

单例模式

单例模式概念:   单例模式定义了一个对象的创建过程,此对象只有一个单独的实例,并提供一个访问它的全局访问点。也可以说单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。 代码实现:     单例的实现有很多种,下面只介绍其中的一种,使用闭包方式来实现单例,代码如下: var single =...
阅读(631) 评论(0)

单体模式和工厂模式

单体模式概念:   单体是一个用来划分命名空间并将一批相关的属性和方法组织在一起的对象,如果他可以被实例化,那么他只能被实例化一次。 其特点有以下三点:            (1)可以来划分命名空间,从而清除全局变量所带来的危险。           (2)利用分支技术来来封装浏览器之间的差异。           (3)可以把代码组织的更为一体,便于阅读和维护。 js代...
阅读(540) 评论(0)

选择排序—简单选择排序

简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序处理流程: (1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束...
阅读(443) 评论(2)

插入排序—希尔排序

希尔排序又叫缩小增量排序 ,希尔排序是1959 年由D.L.Shell 提出来的,相对直接排序有较大的改进。 基本思想: 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。 基本操作如下:       第一步:选择一个增量序列t1,t2,…,tk,其中ti>tj,tk=1;        第二步...
阅读(575) 评论(1)

插入排序—直接插入排序

基本思想: 将一个记录插入到已排序好的有序表中,从而得到一个新记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。 如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。 要点:设立哨兵,作为临时存储和判断数...
阅读(561) 评论(1)

浅谈KMP算法

1.定义 Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。 kmp算法完成的任务是:给定两个字符串O和f,长度分别为n和m,判断f是否在O中出现,如果出现则返回出现...
阅读(391) 评论(0)

纯CSS画基本图形(圆形、三角形、多边形、爱心、八卦)

1、正方形 CSS代码如下:#square{ width: 100px; height: 100px; background: red; }最终效果: 2、长方形 CSS代码如下:#rectangle { width: 200px; height: 100px; background: red; }最终效果: 3、圆形 CSS代码如下:#ci...
阅读(1185) 评论(3)
40条 共2页1 2 下一页 尾页
    个人资料
    • 访问:58361次
    • 积分:1845
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:3篇
    • 译文:0篇
    • 评论:9条
    最新评论