
网络爬虫
文章平均质量分 56
djs123DJS
这个作者很懒,什么都没留下…
展开
-
Windows下配置Chrome WebDriver
详情请参考:https://blog.youkuaiyun.com/u013360850/article/details/54962248转载 2018-06-11 21:19:53 · 1000 阅读 · 0 评论 -
Python函数定义及传参方式
一、函数初识 1、定义: 将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。 2、好处: 代码重用;保持一致性;可扩展性。 3、示例如下: # -*-coding:utf-8-*-def sayHello(): print('Hello world!')sayHello()...转载 2018-11-29 10:43:37 · 508 阅读 · 0 评论 -
jupyter notebook 写代码自动补全
操作步骤进入命令行环境。我使用的是conda。有两种方式进入命令行。方法1:通过anconda navigator界面,选择environments,选择对应环境名,选择open terminal方法2:直接使用cmd或者terminal等终端进入命令行。激活你想要配置代码补全的环境(如果是默认环境不用激活)1.安装nbextensions pip install jup...转载 2018-12-02 16:18:27 · 1348 阅读 · 0 评论 -
return 和yield的区别
详情请查看:https://www.jianshu.com/p/a3383b144eb6yield和return对于新手来说,这两个是容易让人混淆的地方,这里再梳理一遍 解释一就像打电玩一样,你蓄力发大招的时候,如果执行了return,就直接把大招发出去了,蓄力结束如果执行了yield,就相当于返回一个生成器对象,每调用一次next(),就发一个大招 解释二...转载 2018-11-28 09:56:21 · 8181 阅读 · 4 评论 -
requests库中content和text调用的区别
详情请查看:https://www.jianshu.com/p/0e0336b370f3 对requests获取的原始数据,有两种获取形式,一个是r.content一个是r.text。二者的区别在于content返回的是byte型数据,而text返回的是Unicode数据,也就是说text对原始数据进行的特殊的编码,而这个编码方式是基于对原始数据的猜测(响应头),text一般用于返...转载 2018-11-28 11:46:12 · 1278 阅读 · 0 评论 -
拉勾爬虫实战(通过输入关键字爬取任意职位并自动保存为.csv文本)
#这里只分析主要的思路和要注意的点。有什么不懂的可以评论...原创 2018-11-28 19:47:18 · 1512 阅读 · 0 评论 -
网络编程是什么
对于初学者,或者没有接触过网络编程的程序员,会觉得网络编程涉及的知识很高深,很难,其实这是一种误解,当你的语法熟悉以后,其实基本的网络编程现在已经被实现的异常简单了。 网络编程是什么? 网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给两外一个设备,然后接受另外一个设备反馈的数据。 现在...转载 2018-12-06 23:55:38 · 400 阅读 · 0 评论 -
python 闭包 ,装饰器
#_author:'DJS'#date:2018-12-12import time##闭包就是两个函数组成,里面的函数用到外面函数的变量值再加上里面函数的值,那一个坨空间,就是闭包。##能当做实参进行传递,并且能传递功能和数据。def line_6(k,b): x = 200 def create_y(x): nonlocal x #修改闭包...原创 2018-12-15 18:24:16 · 258 阅读 · 0 评论 -
python多进程,多线程,协程
线程依赖于进程,协程依赖于线程,效率最好的是协程,其次到线程,再到进程。总结:单线程会阻塞,协程不会阻塞。主要看会不会阻塞,其次看耗不耗资源。对比之下协程是最好的。 主线程结束,子线程才会结束。程序和进程通俗来讲就是一个运行一个不运行,不运行的叫程序,运行起来的叫进程。程序只有一个,但是进程可以有多个,即是一个程序可以对应多个进程。进程是一个拥有资源的地方。资源是一个资源分配的地方。...原创 2018-12-15 18:26:54 · 1202 阅读 · 1 评论 -
python私有化,import,封装,继承,多态
封装就是拿面向过程的全局变量和函数搞成面向对象中类的属性和方法。继承:减少代码重复量。减少代码的冗余。多态就是一个子类继承了父类。但是每一个子类中都可以改写父类的方法。比如A子类改写了父类的C方法,B子类也改写了父类的C方法。那么再把改了父类C方法的子类传到H类中,在H类中调用这两个子类的C方法得到的结果就会不一样。但是调用父类其他方法还是得到的结果还是一样的。多态概括起来就是...原创 2018-12-15 18:29:06 · 636 阅读 · 0 评论 -
python中深拷贝,浅拷贝
#_author:'DJS'#date:2018-12-09#一个变量等于xx是指向,浅拷贝拷贝的是最顶层(拷贝的是引用而不是数据)的,深拷贝拷贝的是全部(相当于备份)import copyimport sysprint(sys.path) #查看导入模块的先后路径a = [1,2,3] #表示的a指向这个列表b = [4,5,6,]print(id(a))prin...原创 2018-12-15 18:30:15 · 314 阅读 · 0 评论 -
python中的队列,进程池
爬虫中的队列能够起到线程安全的作用,比如说一个线程访问队列中的数据的时候,另外一个线程就就能访问了。这样取数据就不会发生数据重复。但是列表就不可以了,列表你一个线程访问列表里面的数据,其他线程也可能会重复访问这个数据,这样拿出来的数据就有可能重复。即是队列中的数据同一时刻只能被一个线程访问,列表中的数据可能同一时刻可能被多个线程访问,造成数据重复,不安全。用队列另外一个好处是可以解耦,可以让两...原创 2018-12-15 18:41:29 · 768 阅读 · 0 评论 -
Python selenium —— 一定要会用selenium的等待,三种等待方式解读
发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性。很多人在群里问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待。殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出门?凹凸曼分分中内心一万只羊驼...转载 2018-12-21 14:35:30 · 255 阅读 · 0 评论 -
python爬虫常见面试题(一)
前言 之所以在这里写下python爬虫常见面试题及解答,一是用作笔记,方便日后回忆;二是给自己一个和大家交流的机会,互相学习、进步,希望不正之处大家能给予指正;三是我也是互联网寒潮下岗的那批人之一,为了找工作而做准备。一、题目部分1、python中常用的数据结构有哪些?请简要介绍一下。2、简要描述python中单引号、双引号、三引号的区别。3、如何在一个function里设置...转载 2019-02-15 21:21:49 · 520 阅读 · 0 评论 -
scrapy默认去重
作者:乌尔班链接:https://www.zhihu.com/question/19793879/answer/312467126来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。增量爬取,一般两类情况:1.一个网站出现了新的页面,2.一个老页面内容变更了。无论哪一种,增量的前提都是已经存下已经爬取好的信息(至于哪些要存,下面说),当出现新的情况...原创 2019-03-06 12:45:22 · 3769 阅读 · 0 评论 -
csv文件处理
1.纯文本,使用某个字符集,比如 ASCI,Unicode、 EBCDIC或GB2312(简体中文环境)等2由记录组成(典型的是行条记录);3.每条记录被分符分隔为段(典型分精符有退号、分号或制表符:有时分隔符可以包括可选的空)4.每条记录都有同样的字段序列 import csv#读入csv文件中# def csv_demo1():# with ...原创 2018-11-24 17:32:32 · 537 阅读 · 0 评论 -
json文件处理
json文件处理什么是jsonJsON( JavaScript Object Notation,Js对象标记是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的s规范)的集,采用完全独立于编程语言的文本格式存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。json完全独立于语言 ...原创 2018-11-24 16:12:56 · 6120 阅读 · 0 评论 -
cssx选择器
详情请查看:https://blog.youkuaiyun.com/zhoulizhu/article/details/79041471转载 2018-05-31 11:15:13 · 768 阅读 · 0 评论 -
爬虫基础
爬虫框架 Scrapy如果你是一个 Python 高手,基本的爬虫知识都已经掌握了,那么就寻觅一下 Python 框架吧,我选择的框架是Scrapy 框架。这个框架有什么强大的功能呢?下面是它的官方介绍:HTML, XML 源数据 选择及提取 的内置支持 提供了一系列在 spider 之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。 通过 feed 导出...原创 2018-06-28 19:03:51 · 304 阅读 · 0 评论 -
Xpath基础
https://www.bilibili.com/video/av19689660/?p=6 视频的链接Xpath 是一门从html中提取数据的语言:Xpath的语法: 1. '/'是选择节点(标签):' /html/head/meta' :表示的是能够选中html 下的head下的所有的meta 标签 2. ‘//’:能够从任意节点开始选择 ‘//li...原创 2018-11-03 22:08:21 · 3321 阅读 · 0 评论 -
postman介绍2
详情请查看:http://www.jackfred.cn/2016/10/22/postman%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/postman是chrome浏览器应用市场里面的一款神器,测试人员的好帮手,黑客手里的爬虫利器。postman介绍postman是一个用来方便构造各种各样网络请求的工具,他的平台是构建在chrome上的。因为强大有...转载 2018-11-18 20:07:38 · 1907 阅读 · 2 评论 -
postman 在爬虫中的应用3
详情请查看: https://www.shangyang.me/2018/01/24/crawler-tools-postman/ POSTMAN 功能简介POSTMAN 的核心功能区域有,如下图所示,postman overview.png从左至右,从上至下总共有 5 个核心的区域;连接请求 参数输入 发送请求 设置 Authorization、Headers、B...转载 2018-11-18 21:25:14 · 825 阅读 · 0 评论 -
selenium使用 看这一篇就够了
使用 seleniun模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户巧S加密,绕过爬虫检测,绕过签名机制,它的应用,使得许多网站的反采集第略形同虚设:由于lenium不会在HTP请求数据中留下指纹,因此无法被网站直接识别和拦截。但这并不意味着 selenium真的就无法被网站屏蔽了,感兴趣的可以自己去研究。安装selenium的驱动浏览器...原创 2018-11-21 19:33:05 · 2545 阅读 · 0 评论 -
Fiddler 基本使用
Fiddler是款免费的互联网调试代理工具,这是比较专业的叫法了,是款国外软件原版软件无中文版,但有汉化版。它不仅可以抓取你电脑甚至手机与互联网的各种http通讯,同时还能查看他们进行分析。在必要的时候,你甚至可以修改(伪造)某些通讯实现前后端开发者调试的作用。其他作用比如解密hp协议会话,测试网站的性能以及开发和使用第三方插件。抓包指的就是抓数据包,比如请求一个接口,图片,json等都是抓包...原创 2018-11-22 09:29:42 · 413 阅读 · 0 评论 -
Fiddler 抓手机的包
为什么要抓手机端的包呢?有的网站电脑访问和手机访问会回馈不同的页面或内容,网站服务器是如何区分的呢?通过UA( ser-agent)来区别是电脑还是手机端进行的访问(从这里你也可以看出,通过伪装UA可以访问到手机端的页面),直接抓手机的包不需要伪装接就是。首先你需要有一台手机,咽,实在没有也没有关系,还可以用模拟器(如夜神模拟器),也可以使用其他模拟器,也可以在自己真实的手机上使...原创 2018-11-22 11:41:07 · 1306 阅读 · 0 评论 -
postman使用介绍
json和html ,xml一样都是用来表示数据的一种语言,json能表示复杂的数据,所以很多架构师都喜欢用它 所以json能表示很复杂的数据结构信息。现在xml一般不用了,标签复杂,性能也没有json高。postman不适合用来做自动化测试,自动化测试要用编程语言。暴露给web端的才要做接口测试的,系统的内部接口一般不需要。 ...原创 2018-11-22 20:43:06 · 478 阅读 · 0 评论 -
scrapy 中的CrawlSpider 类的介绍
原创 2018-11-17 14:18:32 · 201 阅读 · 0 评论 -
redis连接池理解
详情请查看:https://blog.youkuaiyun.com/HeatDeath/article/details/79450409redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一...转载 2018-11-20 07:38:13 · 928 阅读 · 0 评论 -
python连接MongoDB
转载的地址:https://www.cnblogs.com/whiteprism/p/6066360.html1.安装pymongo库pip install pymongo 或者 easy_install install pymongo2.使用pymongo模块连接mongoDB数据库#coding=utf-8from pymongo import MongoClie...原创 2018-11-17 20:29:36 · 487 阅读 · 0 评论 -
Ajax(异步请求)
Ajax 即异步的js和xml ,是可以与服务器进行(异步或同步)的交互技术之一,最大的特点是页面不刷新,还可以节省带宽,项目正确的情况下只需要向浏览器提交一次就可以。验证码是在服务器上面去验证的,是Ajax拿着验证码去服务器那里验证的。邮箱也是一个原理。Ajax做验证的时候,页面不会刷新,即使输入完后按确定然后不对,在返回也不会刷新页面让你的密码,用户名没有了。 ...原创 2018-11-17 20:30:39 · 371 阅读 · 0 评论 -
数据提取,爬虫思路的总结,多线程爬虫
守护线程:指定是该线程不重要,主线程结束,子线程也结束。数据交换:前端传到后端,后端传到前端。抓包手机的app,一般app的数据都是被加密的,不太好搞,一般用到不多。并不是所有手机版的都是返回json数据的。 ...原创 2018-11-17 20:31:14 · 1500 阅读 · 0 评论 -
总结3(浏览器发送请求的流程)
浏览网页的请求是经过DNS服务器解析后的请求,我们也可以直接请求服务器,就是通过ip可以直接请求服务器cookies是保存一些用户的个人信息,或者对方服务器希望保存在客户端的信息,cookies中只关注name和value的值,其他值都可以不用管。cookies 是有上限的,seesino 是保存在对方服务器的,只要对方服务器有空间想搞多大都可以。cookies 和seesion...原创 2018-11-17 20:31:57 · 1065 阅读 · 0 评论 -
总结5 (http协议与chorme抓包,cookie,ajax加载爬取)
get 请求:从服务器获取数据,并不会对服务器资源产生影响的,使用get请求(一般情况)post请求:向服务器发送数据(登录),上传文件等。会对服务器的资源产生影响的。 请求头常见参数在nttp协议中,向服务器发送一个请求,数据分为三部分,第一个是把数据放在ur中,第二个是把数据放在body中(在post请求中),第三个就是把数据放在head中。这里介绍在网络各爬虫中经常会用到...原创 2018-11-18 13:30:22 · 4127 阅读 · 3 评论 -
mongo数据库导出mongoexport命令的使用
我用的MongoDB管理工具是Robo3T,今天需要从数据库中将集合数据导出,但是Robo3T我不怎么会玩,好像没有直接导出的功能,于是上网查了一下,找到了mongoexport这个命令,可以轻松导出数据在mongo机器上执行下面这条命令mongoexport -h 127.0.0.1 -d nginxlog -c tabo_201711 -f ModuleName,ButtonName,...原创 2019-03-04 13:13:24 · 5516 阅读 · 1 评论