爬取百度百科语料

python3爬取百度百科语料

前言

迫于毕业压力,开始自学NLP(在一个研究院读研,早早开始实习,然而实习公司部门没有能支撑写论文的项目,想想还是挺坑的🤦‍♂️),看了一些资料,决定先开始从词向量入门吧,然而没有好的中文语料,虽然维基百科提供免费的中文语料,但是我看了一下,还要繁体转简体,巴拉巴拉的,并且国内用维基百科毕竟少数,所以估计语料的质量也不咋地,想着我们日常比较常用百度,百度百科作为中文语料应该不错,本以为百度爸爸会开源给我们,然鹅是我想多了,还是自己爬取,做为小白的我,当然是先百度一波,参考一下大佬的代码咯,然后就发现了大佬苏神几年前写的,在这个基础上,稍微改动了一下,优化了一下爬取的内容。

思路

1.初始化一个百度百科词条的URL
2.模拟浏览器访问URL,爬取本页面需要的词条内容,并找出该页面内所有的站内链接(由于爬取的数据较多,沿用苏神的思路,将数据存在mongodb,个人也觉得芒果和python很搭,简直是无缝衔接)
3.将链接单独存于一个集合,为了保证速度,建立索引
4.用多线程在库里取链接爬数据
整体思路就是这样,还是比较清晰的吧

代码

代码在我的GitHub上,欢迎访问😊
完整代码

一些细节

可能百度做了一些简单的防爬虫,需要模拟浏览器才能get到数据,python3还是非常人性化,满足一个懒人的习惯,只需要在get的时候加上一个headers就可以了,所谓人生苦短,我用python,headers的获取方法也比较简单,用谷歌浏览器,F12->Network->点击name下一个链接->Headers->找到User-Agent即可。
some tips:

[re.sub('[ \n\r\t\u3000]+', ' ', re.sub('<.*?>|\xa0', '', unescape(str(t))).strip()) for t in  text])#去除一些空格,对爬取的网页内容做简单处理
#\u3000 表示全角空白符,\xa0表示不间断空白符

使用re.sub()函数处理爬取的网页数据,简直是个神器呀,get到了。

结果

数据还在爬取中,爬了一下午,爬了6W余条,网速不给力🐶,数据估计比较大,不打算上传到GitHub上,建议自己动手试试。

结束语

开篇之作,有些废话连篇,打开写博客之路,强迫自己学习,希望顺利毕业😭。
本博客代码参考苏神之作,原文链接🔗

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百度百科约500万条词条,可用于语义关联或简单的知识网络建立,xml格式,解压后638M,请不要用记事本直接打开,我是用UE打开的,sublime好像会有乱码,文件内容示例如下: =1 <TITLE>=百度百科 =百度百度百科,网络,百科全书,百科词典 =百度知道;贴吧;百度空间;百度地图;百度新闻搜索;百度图片;百度mp3;百度Hi;百度工具栏;百度影视;百度邮编搜索;百度黄页搜索;百度杀毒;百度语音搜索;科利尔百科全书;苏联大百科全书;汇吃百科;维基百科;百度视频;百度蜘蛛;百度文库;互动百科;百度文档;百度文化共享搜索;百度盲道;百度会员;百度搜藏;百度TV;百科全书;知识掌门人;百度游戏;百度有啊;张震;科友; =http://baike.baidu.com/view/1.htm =2 <TITLE>=词条 =百度百度百科 =相关词条; =http://baike.baidu.com/view/2.htm =3 <TITLE>=编辑实验 =百度百度百科,帮助,词条,编辑 =词条;百度; =http://baike.baidu.com/view/3.htm =4 <TITLE>=馒头 =食品,饮食,面食,食谱,蒸馍 =大饼;油条;面包;饺子;花卷;包子;麻花;食品;主食;糯米饭;蛋糕;鲜肉包;米粥;面条;凉拌菜;年糕;饼干;窝头;粽子;烤饼;酥饼;汤圆;烧饼; =http://baike.baidu.com/view/4.htm =6 <TITLE>=雁荡山 =地理,旅游,旅游景点,自然景观,地质公园 =华山;泰山;普陀山;恒山;嵩山;莫干山;浣江;衡山;括苍山;双龙洞;雪窦山;天台山;天目山;楠溪江;天柱山;景宁香炉山;乌镇;杭州西湖;泽雅;白水洋;武夷山;洞宫山;桃花岛;三清山;黄山;新安江水库;崂山区;溪口;太姥山;南麂列岛;野鹤湫;庐山;江心屿;瑶溪;朱家尖;石桅岩;绍兴县;杨家溪;仙岩山;仙都风景区;大龙湫;三折瀑;五岳; =http://baike.baidu.com/view/6.htm =7 <TITLE>=灵峰 =风景,雁荡山,地理,旅游,温州 = =http://baike.baidu.com/view/7.htm

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值