爬虫学习之路
从基础到高级
bug_fu
关键字:软件测试、爬虫、Web开发
展开
-
二十二、mongodb的入门使用
1、mongodb数据库的命令查看当前的数据库:db(没有切换数据库的情况下默认使用test数据库)查看所有的数据库:show dbs /show databases切换数据库:use 数据库名删除当前的数据库:db.dropDatabase()2、mongodb集合的命令不手动创建集合: 向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来手动创建结合:db.create...原创 2018-12-18 19:46:23 · 153 阅读 · 1 评论 -
二十一、mongodb权限管理
1、为什么要进行权限管理的设置 刚安装完毕的mongodb默认不使用权限认证方式启动,与MySQL不同,mongodb在安装的时候并没有设置权限,然而公网运行系统需要设置权限以保证数据安全,所以我们要学习mongodb的权限管理2、mongodb的权限管理方案 MongoDB是没有默认管理员账号,所以要先添加管理员账号,并且mongodb服务器需要在运行的时候开启验证模式用户只能在用...原创 2018-12-18 14:24:56 · 131 阅读 · 0 评论 -
二十五、Mongodb的备份恢复与导出导入
本小节内容需要以 sudo mongod的方式启动才可以使用1、备份作用:保证数据库安全,主要用于灾难处理备份的语法:mongodump -h dbhost -d dbname -o dbdirectory-h: 服务器地址, 也可以指定端⼝号-d: 需要备份的数据库名称-o: 备份的数据存放位置, 此⽬录中存放着备份出来的数据示例:mongodump -h 192.1...原创 2018-12-19 15:13:16 · 95 阅读 · 0 评论 -
二十四、mongodb的索引
1、为什么mongdb需要创建索引加快查询速度进行数据的去重2、mongodb创建简单的索引方法db.集合.ensureIndex({属性:1}),1表示升序, -1表示降序db.集合.createIndex({属性:1})注释:上面两个命令效果等价具体操作:db.db_name.ensureIndex({name:1})3、建索引前后查询速度对比测试:插入10万条...原创 2018-12-19 10:20:57 · 167 阅读 · 1 评论 -
二十三、mongodb聚合操作
1、mongodb的聚合是什么聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果。db.集合名称.aggregate({管道:{表达式}})db.xiaoshuo.aggregate([{KaTeX parse error: Expected '}', g...原创 2018-12-18 23:38:44 · 161 阅读 · 0 评论 -
二十、mongodb的介绍和安装
1、nosql的介绍NoSQL最常⻅的解释是“non-relational”, “Not Only SQL”也被很多⼈接受, 指的是⾮关系型的数据库2、关系型和非关系型的介绍 对于关系型数据库,存储数据的时候需要提前建表建库,随着数据的复杂度越来越高,所建的表的数量也越来越多;但是非关系型却不需要。mysql 和 mongodb 区别:mongodb无需提前建库建表在同一表中...原创 2018-12-17 11:13:42 · 134 阅读 · 0 评论 -
十九、js解析
1、确定js的位置对于前面人人网的案例,我们知道了url地址中有部分参数,但是参数是如何生成的呢?毫无疑问,参数肯定是js生成的,那么如何获取这些参数的规律呢?1.1 观察按钮的绑定js事件 通过点击按钮,然后点击Event Listener,部分网站可以找到绑定的事件,对应的,只需要点击即可跳转到js的位置。1.2 通过search all file 来搜索 部分网站的按钮...原创 2018-12-17 10:47:24 · 368 阅读 · 2 评论 -
十八、chrome在爬虫中的使用
1、新建隐身窗口 浏览器中直接打开网站,会自动带上之前网站时保存的cookie,但是在爬虫中首次获取页面是没有携带cookie的,这种情况如何解决呢?解决方法:使用隐身窗口,首次打开网站,不会带上cookie,能够观察页面的获取情况,包括对方服务器如何设置cookie在本地。2、chrome中network的更多功能2.1 Perserve log默认情况下,页面发生跳转之后...原创 2018-12-15 16:18:00 · 367 阅读 · 0 评论 -
十七、打码平台的使用
1、常见的打码平台云打码:http://www.yundama.com/ (能够解决通用的验证码识别)极验验证码智能识别辅助:http://jiyandoc.c2567.com/ (能够解决复杂验证码的识别)2、云打码的使用2.1 云打码官方接口下面代码是云打码平台提供,做了个简单修改,实现了两个方法:indetify:传入图片的响应二进制数即可indetif...原创 2018-12-15 15:44:21 · 11301 阅读 · 2 评论 -
十六、常见的反爬手段和解决思路
1、明确反反爬的主要思路反反爬的主要思路就是:尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现。例如:浏览器先请求了地址url1,保留了cookie在本地,之后请求地址url2,带上了之前的cookie,代码中也可以这样去实现。2、通过headers字段来反爬headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫2.1 通过headers中的Us...原创 2018-12-15 14:48:04 · 601 阅读 · 0 评论 -
十五、selenium的使用
1、什么是selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏。2、PhantomJS的介绍 PhantomJS 是一个基于Webkit的“无界面”(headless)浏览...原创 2018-12-15 01:18:49 · 183 阅读 · 0 评论 -
十四、高性能爬虫之单线程、多进程、多线程的使用、线程池、进程池的使用
1、爬取糗事百科段子页面的URL是:http://www.qiushibaike.com/8hr/page/1思路分析:确定url地址url地址的规律非常明显,一共只有13页url地址确定数据的位置数据都在id='content-left’的div下的div中,在这个区域,url地址对应的响应和elements相同2、糗事百科代码实现coding=utf-8imp...原创 2018-12-11 12:31:37 · 397 阅读 · 0 评论 -
十三、数据提取方法之beautifulsoup
1、CSS 选择器:BeautifulSoup4的介绍和安装 和lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。 lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。 Beautifu...原创 2018-12-10 15:26:34 · 297 阅读 · 0 评论 -
十二、数据提取方法之lxml
1、lxml的安装安装方式:pip install lxml2 lxml的使用2.1 lxml模块的入门使用导入lxml 的 etree 库 (导入没有提示不代表不能用) from lxml import etree利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法,返回结果的列表,能够接受bytes类型的数据和str类型的数...原创 2018-12-09 21:08:40 · 364 阅读 · 0 评论 -
十一、数据提取方法之xpath
1. 为什么要学习xpath和lxml lxml是一款高性能的Python HTML/XML 解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息。2. 什么是xpath XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。W3School官方文档:http://w...原创 2018-12-09 20:00:18 · 474 阅读 · 0 评论 -
十、数据提取方法之正则
1、 什么是正则表达式 用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。2、 正则表达式的常见语法知识点正则中的字符正则中的预定义字符集正则中的数量词练习: 下面的输出是什么?import restring_a = '<meta http-equiv="X-UA-Compatible" conten...原创 2018-12-09 19:02:04 · 331 阅读 · 0 评论 -
八、数据提取的概念和数据的分类(数据的提取方法)
1、数据提取的概念和数据的分类在爬虫爬取的数据中有很多不同类型的数据,我们需要了解数据的不同类型来有规律的提取和解析数据.结构化数据:json,xml等处理方式:jsonpath,xpath,转换python类型处理,bs4,直接转化为python类型非结构化数据:HTML处理方式:正则表达式,xpath,bs4下面以今日头条的首页为例,介绍结构化数据和非结构化数据(1)结构...原创 2018-12-09 16:47:51 · 2873 阅读 · 0 评论 -
九、数据提取方法之JSON
1、复习什么是json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。1.1 json模块中方法的学习其中类文件对象的理解:具有read()或者write()方法的对象就是类文件对象,比如f = open(“a....原创 2018-12-09 16:47:12 · 342 阅读 · 0 评论 -
七、爬虫入门(总结)
requests模块发送请求获取响应1. 发送请求的方法requests.get(url)requests.post(url)requests.session().get(url)requests.session().post(url)2. 发送请求方法的参数headers={请求头}cookies={cookies}params={查询字符串}data={post...原创 2018-12-09 14:47:17 · 154 阅读 · 0 评论 -
六、urllib的学习
1、 urllib介绍除了requests模块可以发送请求之外, urllib模块也可以实现请求的发送,只是操作方法略有不同!urllib在python中分为urllib和urllib2,在python3中为urllib下面以python3的urllib为例进行讲解2、 urllib的基本方法介绍2.1 urllib.urlopoen传入URL地址import urllib.re...原创 2018-12-09 14:19:42 · 127 阅读 · 0 评论 -
五、requests模块的其他方法
1、 requests中cookirJar的处理方法 使用request获取的resposne对象,具有cookies属性,能够获取对方服务器设置在本地的cookie,但是如何使用这些cookie呢?1.1 方法介绍response.cookies是CookieJar类型使用requests.utils.dict_from_cookiejar,能够实现把cookiejar对象转化为字典...原创 2018-12-09 12:29:19 · 138 阅读 · 0 评论 -
四、requests模块处理cookie的相关请求
1、 爬虫中使用cookie 为了能够通过爬虫获取到登录后的页面,或者是解决通过cookie的反扒,需要使用request来处理cookie相关的请求1.1 爬虫中使用cookie的利弊(1)带上cookie的好处能够访问登录后的页面能够实现部分反反爬(2)带上cookie的坏处一套cookie往往对应的是一个用户的信息,请求太频繁有更大的可能性被对方识别为爬虫...原创 2018-12-09 10:49:43 · 405 阅读 · 0 评论 -
三、requests模块的深入使用
1、requests模块的深入使用requests发送POST请求思考:哪些地方我们会用到POST请求? 登录注册( POST 比 GET 更安全),需要传输大文本内容的时候( POST 请求对数据长度没有要求),所以同样的,我们的爬虫也需要在这两个地方回去模拟浏览器发送post请求。1.1 requests发送post请求语法:用法: response = requests.po...原创 2018-12-09 08:26:13 · 128 阅读 · 0 评论 -
二、requests模块入门的使用
1、requests模块的入门使用1.1 为什么要重点学习requests模块,而不是urllibrequests的底层实现就是urllibrequests在python2 和python3中通用,方法完全一样requests简单易用Requests能够自动帮助我们解压(gzip压缩的等)响应内容1.2 requests的作用作用:发送网络请求,返回响应数据。中文文档通过观察文...原创 2018-12-08 20:35:03 · 148 阅读 · 0 评论 -
一、爬虫入门基础知识
1、爬虫的概述1.1 数据的来源去第三方的公司购买数据(比如企查查)去免费的数据网站下载数据(比如国家统计局)通过爬虫爬取数据人工收集数据(比如问卷调查)收集的自己用户信息1.2 爬取到的数据用途进行在网页或者是app上进行展示进行数据分析或者是机器学习相关的项目1.3什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种...原创 2018-12-07 15:43:45 · 189 阅读 · 0 评论