摘要: 之前我们使用了selenium加Firefox作为下载中间件来实现爬取京东的商品信息。但是在大规模的爬取的时候,Firefox消耗资源比较多,因此我们希望换一种资源消耗更小的方法来爬取相关的信息。 下面就使用selenium加PhantomJS来实现之前的相同的逻辑。 这里需要修改的就是spider 阅读全文
posted @ 2017-09-21 19:10 cnkai 阅读(2457) 评论(0) 推荐(1)
摘要: 在之前的一篇实战之中,我们已经爬取过京东商城的文胸数据,但是前面的那一篇其实是有一个缺陷的,不知道你看出来没有,下面就来详细的说明和解决这个缺陷。 我们在京东搜索页面输入关键字进行搜索的时候,页面的返回过程是这样的,它首先会直接返回一个静态的页面,页面的商品信息大致是30个,之所以说是大致,因为有几 阅读全文
posted @ 2017-09-21 18:39 cnkai 阅读(14479) 评论(0) 推荐(0)
摘要: 创建scrapy项目 填充 item.py文件 在这里定义想要存储的字段信息 填充middlewares.py文件 中间件主要实现添加随机user agent的作用。 填充pipelines.py文件 将我们爬取到的结果存储在mongo数据库中 设置settings.py文件 下面的这些信息需要简单 阅读全文
posted @ 2017-09-21 17:29 cnkai 阅读(1393) 评论(1) 推荐(0)
摘要: 设置PhantomJS请求头 默认情况下: 设置User Agent User Agent已经变成指定的内容 设置PhantomJS不加载图片 SERVICE_ARGS 常用的参数 更多设置可以参考官网 "参数设置" 阅读全文
posted @ 2017-09-21 17:24 cnkai 阅读(1973) 评论(0) 推荐(0)
摘要: Action Chains类常用于模拟鼠标的行为,比如单击,双击,拖拽等行为,使用下面的方法导入Action Chains类 下面先来看一个例子: 以上的例子中,实现了鼠标的拖拽操作,首先需要实例化,然后调用其中的方法,完成相应的操作。 下面是一些常用的模拟鼠标的操作 click(on_elemen 阅读全文
posted @ 2017-09-17 22:30 cnkai 阅读(12985) 评论(0) 推荐(0)
摘要: Frame相关 等待 隐式等待 显示等待 显示等待常用的方法 页面的前进和后退 cookies设置 选项卡设置 异常处理 不使用异常处理 使用异常处理 阅读全文
posted @ 2017-09-17 22:29 cnkai 阅读(752) 评论(0) 推荐(0)
摘要: 浏览器驱动下载 "Edge浏览器" "Firefox浏览器" "Safari浏览器" "Chrome浏览器" "PhantomJS浏览器" 下载完成之后,添加到环境变量。 声明浏览器对象 selenium支持的浏览器版本很多,常用的有如下的几种。 访问网页 以浏览器为例,访问百度网页,并打印出网页源 阅读全文
posted @ 2017-09-17 22:28 cnkai 阅读(1116) 评论(0) 推荐(0)
摘要: yield python中yield的用法很像return,都是提供一个返回值,但是yield和return的最大区别在于,return一旦返回,则代码段执行结束,但是yield在返回值以后,会交出CUP的使用权,代码段并没有直接结束,而是在此处中断,当调用send()或者next()方法之后,yi 阅读全文
posted @ 2017-09-13 14:36 cnkai 阅读(12201) 评论(4) 推荐(2)
摘要: Python中提供了函数和类来实现多进程 创建多进程 使用函数方式 使用类方式 使用以上两种方式创建多进程时,join()方法与多线程效果相同,多线程设置守护线程的命令是 , 而多进程设置守护进程的命令是 进程锁Lock() 进程锁可以避免因为多个进程访问共享资源而发生冲突。 不使用进程锁 可以看到 阅读全文
posted @ 2017-09-13 14:35 cnkai 阅读(814) 评论(0) 推荐(0)
摘要: python中提供了函数和类两种方式使用多线程: 创建多线程 函数方式 类方式 使用类方式需要写一个类,继承自threading.Thread类,然后重写run()方法。 线程锁 threading.Lock() 由于线程之间可以共享数据,而线程交替被送上CPU运行,这时很容易出现的一个问题就是,一 阅读全文
posted @ 2017-09-11 19:08 cnkai 阅读(1436) 评论(0) 推荐(0)