爬虫无烦恼,大牛教你怎么简单爬36kr网,带源码

抓取36kr网站数据

爬虫代码和数据sql脚本在下方链接,抓取过程主要是抓包找到url递归解析的规律,三个主要的函数 以及 表结构脚本如下:

#建表语句(写爬虫时候忘记添加user_url 后续数据处理时候update补全了这个字段)CREATE TABLE `36kr` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', `column_id` varchar(255) DEFAULT NULL COMMENT '专题id', `tag` varchar(255) DEFAULT NULL COMMENT '专题名', `b_id` varchar(255) DEFAULT NULL COMMENT '文章id', `article_url` varchar(255) DEFAULT NULL COMMENT '文章url', `title` varchar(255) DEFAULT NULL COMMENT '标题', `user_id` varchar(255) DEFAULT NULL COMMENT '用户id', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名', `total_words` varchar(255) DEFAULT NULL COMMENT '文章总字数', `close_comment` varchar(255) DEFAULT NULL COMMENT '关闭评论数', `favorite` varchar(255) DEFAULT NULL COMMENT '收藏数', `likes` varchar(255) DEFAULT NULL COMMENT '赞数', `pv` varchar(255) DEFAULT NULL COMMENT 'pv浏览量', `pv_app` varchar(255) DEFAULT NULL COMMENT 'app浏览量', `pv_mobile` varchar(255) DEFAULT NULL COMMENT '手机端浏览量', `view_count` varchar(255) DEFAULT NULL COMMENT '观看次数统计', `extraction_tags` text COMMENT '文章标签', `summary` text COMMENT '摘要', `title_mobile` text COMMENT '手机端标题', `introduction` varchar(255) DEFAULT NULL COMMENT '简介', `published_at` varchar(255) DEFAULT NULL COMMENT '发表时间', `created_at` varchar(255) DEFAULT NULL COMMENT '创建时间', `updated_at` varchar(255) DEFAULT NULL COMMENT '更新时间', `related_company_id` varchar(255) DEFAULT NULL COMMENT '公司id', `related_company_type` varchar(255) DEFAULT NULL COMMENT '公司类型', `related_company_name` varchar(255) DEFAULT NULL COMMENT '公司名称', `full_url` varchar(255) DEFAULT NULL COMMENT '请求url', `user_url` varchar(50) DEFAULT NULL COMMENT '用户url',, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=29045 DEFAULT CHARSET=utf8;

爬虫核心三个函数 人工构造导航栏(字段tag)的 column_ids和 column_names列表 进行字典映射 请求数据后将导航栏数据写入数据库,第一次请求url只有column_id动态 per_page参数写死=1

#第一次请求解析出后续的请求url def parse_column(self): column_ids = self.column_ids_dict['column_ids'] print(column_ids, self.column_dict) for column_id in column_ids: self.parse_first_req(column_id) #第一次请求url只有column_id动态 per_page参数写死=1 def parse_first_req(self, column_id): first_url = self.start_url.format(column_id) print(first_url) html = requests.get(first_url).text items = json.loads(html)['data']['items'] if items: last_b_id = items[-1]['id'] full_url = self.base_url.format(column_id, last_b_id) print('解析导航栏:%s-->首页,id-->%s' % (self.column_dict[column_id], column_id)) self.parse_json(full_url) else: pass #解析 http://36kr.com/api/post?column_id=23&b_id=5070043&per_page=100 数据网为100个item循环遍历 def parse_json(self, full_url): print("解析组合url--->", full_url) self.req_urls.append(full_url) html = requests.get(full_url).text items = json.loads(html)['data']['items'] if items: for item in items: parse_item = item parse_item['tag'] = self.column_dict[item['column_id']] parse_item['full_url'] = full_url self.insert_item(parse_item) last_b_id = items[-1]['id'] column_id = items[-1]['column_id'] next_req_url = self.base_url.format(column_id, last_b_id) print('下一次请求url-->', next_req_url) #递归 self.parse_json(next_req_url) else: pass

最终根据网站导航栏的结构进行抓取了29000多篇文章,数据维度包括作者,创建及发布和更新时间,pv浏览量,收藏数,点赞数等

现在许多人都想学习人工智能才来学的python,这里小编题外为大家补充一下刚刚看见的最新消息《除了获奖感言 吴恩达们说人工智能的2018要这么走!》摘录:

大众对人工智能的理解存在误区 有点像“盲人摸象”

在《AI技术变革:趋势与方向》圆桌讨论之中,主持人乌镇智库理事长、《人工智能简史》作者张晓东首先抛出一个问题,大家对人工智能的理解到底有没有误区?瞬间引发大家热议。

旷视科技首席科学家孙剑坦言,目前社会大众对AI的误区肯定是有的,通过AlphaGo这样的事件让大家觉得人工智能已经很快就到了,但是在学术界,大家其实觉得人工智能还很长远,还有很多基本问题都没有解决。

同样,中科院计算所研究员,中科视拓创始人、董事长兼CTO山世光持相同看法,他将这种误区打比方为“盲人摸象”,他讲到,每个人的经验都是基于自己过去的一些研究的经历或开发经历,所以即使从业人员对AI的理解也是片面的,大家都没有一个全局的观念,因为没有一个人能够在这样一个时间点把所有的事情都搞得非常清楚。

这在第四范式创始人兼CEO戴文渊看来,人工智能和人类智能是两种不一样的东西,人的大脑工作原理和机器大脑的工作原理是不一样的,比如有一个运算能力特别强、记忆特别快的大脑,但它和人的归纳、抽象、总结方式和原理是不一样的,他这样指出了一个普遍存在的一个误区。

而同盾科技副总裁顾威则将这种误区归纳为“真理总会有一个过程”,人工智能未来就像互联网一样,互联网当时在90年代末期,大家觉得对它也有质疑,对它的理解有误区,我相信未来五到十年就有人工智能的BAT出现。

文章来源:

如有侵权,请联系小编删除文章

本文来自企鹅号 - 鲁滨逊媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户画像

实验3.1 简单的单表查询

熟练掌握用SELECT语句实现简单的单表查询。掌握SELECT子句、FROM子句、WHERE子句及ORDER BY 子句的用法。

14720
来自专栏数据小魔方

MySQL入门学习笔记——七周数据分析师实战作业

本篇推送主要涉及SQL语言中较为复杂的子查询与函数嵌套。 虽然这个MySQL系列取名为MySQL基础入门,但是个人不打算做单个函数的用法总结,或者说简单罗列,...

51670
来自专栏数据小魔方

左手用R右手Python系列——七周数据分析师学习笔记R语言、Python版

上一篇我重点写了秦路老师在七周数据分析师系列课程中MySQL模块的实战作业SQL语法,对比了自己的冗余思路与老师的最佳思路。 MySQL入门学习笔记——七周数据...

53760
来自专栏谭烨的专栏

站在讲台上的时候,我怕我会心虚

其实我都差不多下定决心了:去应聘我们当地的培训机构做讲师。以我的条件,十拿九稳,除非他们瞎。甚至条件都想好了:工资嘛,将就一下都行,但是要自由点,我上完课就走人...

18300
来自专栏java架构学习交流

java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素

场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大。当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属...

219100
来自专栏码神联盟

碎片化 | 第四阶段-49-hibernate之HQL查询操作-视频

本套视频从Java基础到架构模式以及AI算法,整体视频以“碎片化”学习的模式,提供给大家 ,并配备实际项目为案例,让大家在坐车、吃饭、午休、蹲坑的时候,都可以学...

35260
来自专栏Grace development

基于TP的每日签到代码

35130
来自专栏猿人谷

【性能提升神器】Covering Indexes

可能有小伙伴会问,Covering Indexes到底是什么神器呢?它又是如何来提升性能的呢?接下来我会用最通俗易懂的语言来进行介绍,毕竟不是每个程序猿都要像D...

6510
来自专栏杨建荣的学习笔记

MySQL死锁的两个小案例

最近花了些时间分析MySQL锁的内容,觉得越看越有意思。 我有个学习的习惯,有时候也不知道好还是不好,那就是喜欢直接上手练习,然后反过来练习理论。结果在...

37270
来自专栏landv

金蝶K3 WISE BOM多级展开_物料齐套表

15610

扫码关注云+社区

领取腾讯云代金券