摘要: 1. 引入 我们平常写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理。 2. 如何使用 爬虫使用多线程来处理网络请求,使用线程来处理URL队列中的url,然后将url返回的结果保存在另一个队列中,其它线程在读取这个队列中的数据,然 阅读全文
posted @ 2019-03-07 18:27 一念之间的抉择 阅读(486) 评论(0) 推荐(0) 编辑
摘要: Selenium 处理滚动条 selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了 当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位 阅读全文
posted @ 2019-03-07 18:25 一念之间的抉择 阅读(1204) 评论(0) 推荐(0) 编辑
摘要: 问题 有的页面的很多部分都是用JS生成的,而对于用scrapy爬虫来说就是一个很大的问题,因为scrapy没有JS engine,所以爬取的都是静态页面,对于JS生成的动态页面都无法获得 官网http://splash.readthedocs.io/en/stable/ 解决方案 利用第三方中间件来 阅读全文
posted @ 2019-03-07 18:23 一念之间的抉择 阅读(2539) 评论(0) 推荐(0) 编辑
摘要: 1. Scrapy-Request和Response(请求和响应) Scrapy的Request和Response对象用于爬网网站。 通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。 爬虫Requ 阅读全文
posted @ 2019-03-07 18:18 一念之间的抉择 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 使用CentOS6 标准版系统(Linux系统下安装) 因为CentOS默认是python2 安装 python3 安装装python3的环境 解压压缩包 tar -xf python3.6.1.tar (参考Linux安装python3) 安装scrapy 安装 scrapy-redis 1. 介 阅读全文
posted @ 2019-03-07 18:16 一念之间的抉择 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1. Splash介绍 Splash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们同样可以实现动态渲染页面的抓取 2. 安装 2.1 安装docker(安装方法看上一篇) https://www.cnbl 阅读全文
posted @ 2019-03-07 18:11 一念之间的抉择 阅读(4138) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。二、 使用docker toolbox安装docker 对于Windows用户来说, 阅读全文
posted @ 2019-03-07 18:08 一念之间的抉择 阅读(1712) 评论(0) 推荐(0) 编辑
摘要: 1、Linux命令: 查看服务器的版本: cat /etc/redhat-release clear清屏 2、更新或者安装依赖库:都是使用yum进行安装 yum install gcc-c++ yum install wget openssl-devel bzip2-devel expat-deve 阅读全文
posted @ 2019-03-07 12:27 一念之间的抉择 阅读(9263) 评论(0) 推荐(0) 编辑
摘要: 服务器: 硬件服务器,类似于电脑,不能断点,ip可以外网访问 web服务器:软件,部署项目,项目运行的一个环境 在高并发情况下:解决服务器“很卡”问题: 1、服务器加内存、加固态硬盘提高服务器的读写能力 2、做集群:多台服务器一起工作,怎么工作 Nginx介绍:Nginx是一个web服务器和反向代理 阅读全文
posted @ 2019-03-07 12:24 一念之间的抉择 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1、Django ORM操作MySQL数据库 a) 新建MySQL数据库叫db_orm b)新建一个mysql_orm的项目 c) 在项目的settings下修改DATABASE'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'd 阅读全文
posted @ 2019-03-07 12:19 一念之间的抉择 阅读(942) 评论(0) 推荐(0) 编辑