摘要: items.py 1 import scrapy 2 class LagouItem(scrapy.Item): 3 # define the fields for your item here like: 4 # name = scrapy.Field() 5 #id 6 # obj_id=scr 阅读全文
posted @ 2017-06-10 12:04 hcw_19 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 1.尽量减少请求次数,能抓列表页就不抓详情页,减轻服务器压力,程序员都是混口饭吃不容易。 2.不要只看 Web 网站,还有手机 App 和 H5,这样的反爬虫措施一般比较少。 3.实际应用时候,一般防守方做到根据 IP 限制频次就结束了,除非很核心的数据,不会再进行更多的验证,毕竟成本的问题会考虑到 阅读全文
posted @ 2017-06-09 14:03 hcw_19 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 数据爬回来了,但是放在Redis里没有处理。之前我们配置文件里面没有定制自己的ITEM_PIPELINES,而是使用了RedisPipeline,所以现在这些数据都被保存在redis的xx:items键中,所以我们需要另外做处理。 在目录下可以看到一个process_items.py文件,这个文件就 阅读全文
posted @ 2017-06-09 13:47 hcw_19 阅读(1669) 评论(0) 推荐(0) 编辑
摘要: 这个RedisCrawlSpider类爬虫继承了RedisCrawlSpider,能够支持分布式的抓取。因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写parse()方法。 同样也不再有start_urls了,取而代之的是redis_key,scrapy-re 阅读全文
posted @ 2017-06-09 13:37 hcw_19 阅读(4008) 评论(0) 推荐(0) 编辑
摘要: Scrapy-Redis分布式策略: 假设有四台电脑:Windows 10、Mac OS X、Ubuntu 16.04、CentOS 7.2,任意一台电脑都可以作为 Master端 或 Slaver端,比如: Master端(核心服务器) :使用 Windows 10,搭建一个Redis数据库,不负 阅读全文
posted @ 2017-06-09 13:33 hcw_19 阅读(517) 评论(0) 推荐(0) 编辑
摘要: Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供 阅读全文
posted @ 2017-06-09 13:30 hcw_19 阅读(2386) 评论(1) 推荐(0) 编辑
摘要: 在项目根目录下新建main.py文件,用于调试 阅读全文
posted @ 2017-06-09 13:26 hcw_19 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 注意:模拟登陆时,必须保证settings.py里的 COOKIES_ENABLED (Cookies中间件) 处于开启状态 COOKIES_ENABLED = True或 # COOKIES_ENABLED = False 策略一:直接POST数据(比如需要登陆的账户信息) 策略二:标准的模拟登陆 阅读全文
posted @ 2017-06-09 12:30 hcw_19 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 1. 创建middlewares.py文件。 Scrapy代理IP、Uesr-Agent的切换都是通过DOWNLOADER_MIDDLEWARES进行控制,我们在settings.py同级目录下创建middlewares.py文件,包装所有请求。 2. 修改settings.py配置USER_AGE 阅读全文
posted @ 2017-06-09 12:15 hcw_19 阅读(1867) 评论(0) 推荐(1) 编辑
摘要: 动态设置User-Agent(随机切换User-Agent,模拟不同用户的浏览器信息) 禁用Cookies(也就是不启用cookies middleware,不向Server发送cookies,有些网站通过cookie的使用发现爬虫行为)(可以通过COOKIES_ENABLED 控制 Cookies 阅读全文
posted @ 2017-06-09 12:05 hcw_19 阅读(984) 评论(0) 推荐(0) 编辑