哪些地方需要改进和注意的地方,或更好的爬虫策略。
下面是伪代码 欢迎批评指正!
数据模型
class Obj: pass
常量
Objs = [] 对象容器 IPS = [] 代理池
函数
1. 构造代理 ip 池 def build_ips(): .... return ips 2. 下载页面 - 随机选取代理 ip 下载页面,限制 timeout ,超时或异常更换 ip ,最多重试 5 次 - 基础页下载(含 params 参数),详细页下载不含参数 def download_html(url,params=None) .... return html 3. 构造参数组合(不包含页码) - 如:城市+关键字 的组合 def build_params_lst(citys,kds): .... return params_lst 4. 解析基础页(带请求参数,不含页码),构造 Obj-->Objs - 页码上限设置很大。 - 参数=原参数+页码。 - 解析基础信息(至少包含详细页面 url)并 push 到 Objs 列表 - 该页码下内容为空则 return ,中断页码遍历 def parse_html(params) obj = Obj() obj.name = .... .... Objs.append(obj) return None 5. 解析详细页面,更新 obj 详细信息。 def get_detail(obj): url = obj.url .... obj.detail = ... return None
程序执行
1. IPS = build_ips() 2. params_lst = build_params_lst() 3. 多线程基础下载解析 函数: parse_html 参数迭代器: params_lst 4. 多线程详细页面下载解析 函数: get_detail 参数迭代器 Objs 5. 遍历 Objs ,添加 obj 到数据库
我的想法是爬取主要的所有的招聘网站做一个It垂直搜索引擎。
已经看到挖工作网实现这个想法。职友网的搜索做的很差。
想实现一个高效的爬虫,能每天实时更新数据库。
requests+lxml+Mysql+redis
准备学习分布式爬虫,用阿里云弹性伸缩服务器,自动晚上开机爬取。
访问速度,通过代理ip,可以解决。 内容提取,网页结构化,xpath比较容易提取。 网站不需要登录
希望实现一个爬虫策略 效率高,结构清晰,代码简洁好读,便于自己理解和维护。
![]() | 1 murmur 2016-06-17 16:43:02 +08:00 代码我就不看了 总结一下: ( 1 )如果是真的用的爬虫,而不是出于练习目的,那么任何一个开源爬虫都比你的好,无论是 nutch 还是 scrapy 还是其他的 ( 2 )即便是练习,重点也要放在内容提取,就是定向爬虫部分,而不是仅仅收录就可以,比如你去比价,去抓评价,所以可以基于一个现有的爬虫开发,去做垂直抓取那部分 ( 3 )爬虫的异常处理永远是难点,尤其是有随机插入白色字符的、需要注册的、访问太快就 ban 的、要验证码的等 |
![]() | 2 practicer 2016-06-17 16:53:50 +08:00 @murmur 题主目前在学习阶段,经过自己构思策略后,再对学 scrapy 等框架百宜而无一害。 我提一个想法,第三步改成让爬虫递归按当前路径向下钻,设置一个递归层次的参数,限制无限递归。例如这个参数设为 3 ,那么爬 abc.com/beijing/这个路径的时候,自动抓链接抓到 abc.com/beijing/1st-layer/2nd-layer/3rd-layer 。 |
![]() | 3 murmur 2016-06-17 16:55:16 +08:00 @practicer 看我写的,建议一开始研究一个模块,当然就是内容提取这部分,这里会遇到各种真实的问题,会看到别的公司高薪聘请的程序员是怎么恶心你的,然后这里写好了 python 相关掌握差不多再来搞架构不更好 |
4 chendajun 2016-06-17 16:55:30 +08:00 定向爬虫的话还是用开源爬虫吧。在用 Scrapy ,目前大概 400 个爬虫任务,基本稳定。 |
5 DingYuanfang OP |
6 qdk0901 2016-06-17 21:30:21 +08:00 并发数 10 个就掉 wifi ? 我用 nodejs 爬 tumblr 图片,并发数 1000 都没什么问题。 |
![]() | 7 slysly759 2016-06-18 16:20:32 +08:00 |
8 DingYuanfang OP @slysly759 qq 574985696 |
![]() | 9 sosozzzx 2016-08-29 16:26:53 +08:00 关注这个博客很久了,写的爬虫教程很多,关键是教程好细致,特色适合初学者 推荐给你看看 youmumzcs 的专栏 http://blog.csdn.net/youmumzcs?viewmode=contents |