电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息 - 腾讯云

文章推薦指數: 80 %
投票人數:10人

最近在做关于知识图谱方面的实验,需要一些数据,于是爬取了豆瓣上关于电影和书籍的信息。

两天时间内共爬取20W+条数据,包括电影信息、电影演员信息、 ... 腾讯云备案控制台腾讯云开发者社区专栏问答沙龙团队主页TVP搜索搜索关闭创作写文章发视频提问登录注册展开腾讯云·社区登录首页专栏问答沙龙团队主页TVP返回腾讯云官网小一44篇文章电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息转到我的清单专栏首页谓之小一电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息31分享分享文章到朋友圈分享文章到QQ分享文章到微博复制文章链接到剪贴板海报分享海报分享电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息发布于2019-08-1416:00:40阅读8380最近在做关于知识图谱方面的实验,需要一些数据,于是爬取了豆瓣上关于电影和书籍的信息。

两天时间内共爬取20W+条数据,包括电影信息、电影演员信息、书籍信息、书籍作者信息,GitHub链接为https://github.com/weizhixiaoyi/DouBan-Spider。

1.数据说明电影信息包括电影id、图片链接、名称、导演名称、编剧名称、主演名称、类型、制片国家、语言、上映日期、片长、季数、集数、其他名称、剧情简介、评分、评分人数,共67245条数据信息。

虽说是电影信息,但其中也包括电视剧、综艺、动漫、纪录片、短片。

电影演员信息包括演员id、姓名、图片链接、性别、星座、出生日期、出生地、职业、更多中文名、更多外文名、家庭成员、简介,共89592条数据信息。

这里所指的演员包括电影演员、编剧、导演。

书籍信息包括书籍id、图片链接、姓名、子标题、原作名称、作者、译者、出版社、出版年份、页数、价格、内容简介、目录简介、评分、评分人数,共64321条数据信息。

书籍作者信息包括作者id,姓名、图片链接、性别、出生日期、国家、更多中文名、更多外文名、简介,共6231条数据信息。

这里作者包括书籍作者和译者。

2.配制环境系统环境:ubuntu18.04python环境:python3.6python依赖包:requests,bs4,redis,yaml,multiprocessing3.爬虫思路3.1电影爬虫进入电影分类界面后,找到开发者工具,找到NetWork->XHR,我们能够看到RequestURL为https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&genres=剧情。

打开上述RequestURL,能够看到一系列电影信息,我们只需要拿到其中的id即可。

为了确保不重复爬取相同的电影,每拿到一个id之后,都存到redis已爬取队列之中。

如果下次再遇到相同的id,则跳过不进行爬取。

另外,再次观察上面URL,发现只要改变start和genres,便能够拿到所有电影id。

以新喜剧之王id4840388为例,拼接https://movie.douban.com/subject后得到MovieURL为https://movie.douban.com/subject/4840388。

请求MovieURL,便能得到电影信息。

通过BeautifulSoup选取相应标签,便能够拿到电影id、图片链接、名称、导演名称、编剧名称、主演名称、类型、制片国家、语言、上映日期、片长、季数、集数、其他名称、剧情简介、评分、评分人数信息。

爬取电影信息结束之后,将演员id单独进行提取出来。

同样为了保证不重复爬取,每得到一个演员id,都存放到redis已爬取队列之中。

以张全蛋id/celberity/1350283为例,拼接https://movie.douban.com,便能得到演员URF为https://movie.douban.com/celebrity/1350283/。

然后请求演员URL,利用BeautifulSoup选取相应标签,便能拿到演员id、姓名、图片链接、性别、星座、出生日期、出生地、职业、更多中文名、更多外文名、家庭成员、简介信息。

总结一下,获取电影信息和电影演员信息流程为获取https://movie.douban.com/tag/#/界面所有电影类别genres,循环电影类别genres。

请求https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&genres=剧情网址,每次返回20个电影id。

如果返回为空,更换电影类别genres。

对返回的20个电影id存放到redis已爬取队列之中,返回去重后的电影idlist。

多线程爬取电影idlist之中的电影信息。

获取电影演员id,存到到redis已爬取队列之中,返回去重后的演员idlist。

多线程爬取演员idlist之中的电影信息。

start加20循环2-7步骤。

3.2书籍爬虫进入豆瓣图书标签页面,请求https://book.douban.com/tag/?view=type&icn=index-sorttags-all,利用BeautifulSoup得到所有图书标签。

以小说标签为例,URL为https://book.douban.com/tag/小说?start=0&type=T,请求URL之后,利用BeautifulSoup选取相应标签,便能够拿到当前页面所有书籍id。

为了确保不重复爬取相同的书籍,每拿到一个id之后,都存到redis已爬取队列之中。

如果下次再遇到相同的id,则跳过不进行爬取。

同样,观察上述URL,我们只需要通过遍历start和tag便能够拿到所有书籍id。

以解忧杂货店id25862578为例,拼接https://book.douban.com/subject/后便能得到书籍URL为https://book.douban.com/subject/25862578/。

然后请求书籍URL页面,通过BeautifulSoup选取相应标签,便能够拿到书籍id、图片链接、姓名、子标题、原作名称、作者、译者、出版社、出版年份、页数、价格、内容简介、目录简介、评分、评分人数信息。

爬取书籍信息结束之中,将作者id单独提取出来。

同样为了保证不重复爬取,每得到一个作者id,都存放到redis已爬取队列之中。

以东野圭吾为例,获取作者id4537266,拼接https://book.douban.com/author/之后,便能得到作者URL为https://book.douban.com/author/4537266/。

然后请求作者URL,利用BeautifulSoup选取相应标签,便能拿到作者id,姓名、图片链接、性别、出生日期、国家、更多中文名、更多外文名、简介信息。

总结一下,获取书籍信息和书籍作者流程为请求https://book.douban.com/tag/?view=type&icn=index-sorttags-all界面,利用BeautifulSoup获取图书所有标签。

请求https://book.douban.com/tag/小说?start=0&type=T,利用BeautifulSoup获取20个书籍ID。

如果为空,则更换书籍标签tag。

对返回的20个书籍id存放到redis已爬取队列之中,返回去重后的书籍idlist。

多线程爬取书籍idlist之中的书籍信息。

获取书籍作者id,存放到redis已爬取队列之中,返回去重后的作者idlist。

多线程爬取演员idlist之中的作者信息。

start加20循环2-7步骤。

4.使用教程├──book │├──__init__.py │├──book_crawl.py │├──book_page_parse.py │├──book_person_page_parse.py │└──book_spider_config.yaml ├──log │├──book_log_config.yaml │└──movie_log_config.yaml ├──movie │├──__init__.py │├──movie_crawl.py │├──movie_page_parse.py │├──movie_person_page_parse.py │└──movie_spider_config.yaml └──proxy ├──get_ip.py ├──ip_list.txt └──ua_list.txt复制爬取之前,需要先启动redisserver,然后再配置proxy中的getip。

爬取过程中为了省事,我用的是收费的ip代理池,蘑菇代理,每三分钟请求10个ip。

如果你要使用的话,可以找一些免费的ip代理工具,成功之后,将有效ip写入到iplist之中即可。

方便一点的话,可以直接购买ip代理池,同样成功后将ip写入到ip_list即可。

moviespiderconfig.yaml和bookspiderconfig用于配制一些爬虫信息,比如超时时间和redis信息。

movielogconfig.yaml和booklogconfig.yaml用于配制log信息,比如log地址和写文件格式信息。

如果你想爬取一些电影或书籍的其他信息,比如电影评论等,可以根据需求更改moviepageparse,moviepersonpageparse,bookpageparse,bookpersonpageparse的代码。

最后,配置好redis和ip代理池之后,分别启动moviecrawl和bookcrawl即可。

5.数据获取豆瓣数据下载链接为https://pan.baidu.com/s/1cLdsAXLGH2akJqMIsGdoig提取码:n97y。

配置过程中有任何问题,欢迎在公众号后台提问,随时回答,内容转载请注明出处。

文章分享自微信公众号:谓之小一复制公众号名称本文参与腾讯云自媒体分享计划,欢迎热爱写作的你一起参与!如有侵权,请联系[email protected]删除。

展开阅读全文IDEhttps网络安全PHPRedis举报点赞3分享登录后参与评论0条评论电影知识图谱问答(四)|问句理解及答案推理上篇文章《电影知识图谱问答(三)|ApacheJena知识存储及SPARQL知识检索》中讲到如何将处理后的RDF数据存储至ApacheJena数据库之中、如...小一电影知识图谱问答(二)|生成298万条RDF三元组数据本篇文章接《电影知识图谱问答(一)|爬取豆瓣电影与书籍详细信息》,学习如何利用爬取的数据,构建知识图谱所需的三元组。

主要内容包括如何从Json类型的数据,转换成...小一[Python从零到壹]六.网络爬虫之BeautifulSoup爬取豆瓣TOP250电影详解前文作者详细介绍了BeautifulSoup技术,这篇文章主要结合具体实例进行深入分析,讲述一个基于BeautifulSoup技术的爬虫,爬取豆瓣排名前250部...Eastmount「Python爬虫系列讲解」五、用BeautifulSoup爬取电影信息前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式...荣仔_最靓的仔Python爬取豆瓣的各分类书单以及近期热门电影和top250的电影大师级码师Python爬取豆瓣的各分类书单以及近期热门电影和top250的电影用户7365393Python爬虫之撩妹篇—微信实时爬取电影咨询“本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享”Python数据科学关于Python数据分析,这里有一条高效的学习路径广泛被应用的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网...Crossin先生找python爬虫小项目?github给你准备好了!即使我们都是程序员,但我们也并非都会修电脑,都会做酷炫的ppt,都会优化系统卡顿。

其实程序员也是分行业、分专业的,就像医生也分内外科、呼吸科、神经科神的。

efonfighting我是如何零基础开始能写爬虫的利用这些数据,可以做很多领域的分析、市场调研,获得很多有价值的信息,可以应用在很多的工作场景,于是果断开始学习。

Python中文社区电影知识图谱问答(三)|ApacheJena知识存储及SPARQL知识检索上篇文章《电影知识图谱问答(二)|生成298万条RDF三元组数据》中讲到如何将爬取得到的豆瓣电影和书籍数据转换成知识图谱所需的RDF类型数据,本篇文章将介绍如何...小一我是这样开始写Python爬虫的刚开始接触爬虫的时候,简直惊为天人,十几行代码,就可以将无数网页的信息全部获取下来,自动选取网页元素,自动整理成结构化的文件。

利用这些数据,可以做很多领域的分...企鹅号小编利用多线程到电影天堂爬点电影回家慢慢看【python爬虫入门进阶】(05)已经好久没有更新爬虫类的文章了,从入门到入狱的好技术怎能不好好学习呢。

所以,今天我继续来卷了。

本文将从实战的角度介绍一个完整的爬虫。

这里以妇孺皆知的电影天堂网站...码农飞哥从小白到年薪10万+,优秀的数据分析能力如何速成?广泛被应用的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网...机器学习AI算法工程Python爬虫入门想从零基础开始学习Python,可以把爬虫可以作为切入点。

利用爬虫将基础知识学起来。

毕竟兴趣是最好的学习老师。

我当初觉得爬取网站数据挺有趣,所以才靠开始学习...猴哥yuripython爬虫实战项目之爬取豆瓣最受欢迎的250部电影Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取...python学习教程一分钟爬取知乎5646个知乎回答(内附代码)有人说,我知道可以去看豆瓣评分,按照评分高低排序选书,但是往往评分高的书却不容易阅读,比如下图介绍的《量子力学》,评分高达9.6,五星好评,可惜工作时间繁忙阻碍...行哥玩Python资源整理|32个Python爬虫项目让你一次吃到撑!今天为大家整理了32个Python爬虫项目,大家可以自行前往GitHub搜索,或者直接留言,我会给大家发送相关链接~谢谢! WechatSogou[1]-微...小小科最全Python爬虫:微信、知乎、豆瓣,一次“偷”个够!WechatSogou[1]–微信公众号爬虫。

基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字...BestSDK更多文章小一关注专栏文章44阅读量50.7K获赞107作者排名2728腾讯云原生专题云原生技术干货,业务实践落地。

视频公开课上线啦Vite学习指南,基于腾讯云Webify部署项目立即查看腾讯云自媒体分享计划入驻云加社区,共享百万资源包。

立即入驻广告关闭目录1.数据说明2.配制环境3.爬虫思路3.1电影爬虫3.2书籍爬虫4.使用教程5.数据获取社区专栏文章阅读清单互动问答技术沙龙技术快讯团队主页开发者手册腾讯云TI平台活动原创分享计划自媒体分享计划邀请作者入驻自荐上首页在线直播生态合作计划资源技术周刊社区标签开发者实验室关于视频介绍社区规范免责声明联系我们友情链接归档问题归档专栏文章归档快讯文章归档关键词归档开发者手册归档开发者手册Section归档腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL数据库SSL证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright©2013-2022TencentCloud.AllRightsReserved.腾讯云版权所有京公网安备11010802017518粤B2-20090059-1扫描二维码扫码关注腾讯云开发者领取腾讯云代金券



請為這篇文章評分?