网页抓取数据百度百科(百度百科的URL2.模拟访问URL爬数据整体思路)

优采云 发布时间: 2021-10-09 02:23

  网页抓取数据百度百科(百度百科的URL2.模拟访问URL爬数据整体思路)

  Python3爬取百度百科语料

  前言

  迫于毕业压力,自己开始自学NLP(读*敏*感*词*,很早就开始实习了,但实习公司部门没有项目支持写论文。想想还是挺坑的它)。看了一些资料后,我决定先开始。让我们从词向量开始。但是,没有好的中文语料库。虽然维基百科提供了免费的中文语料库,我还是看了一下。我还需要从繁体中文切换到简体中文。Barabara,和维基百科在中国很少使用,所以估计语料的质量。还不错吧,想想我们每天都经常用百度。百度百科作为中文语料库应该不错。我以为百度爸爸会开源给我们。当然是百度的第一波,参考大佬的代码,然后发现大佬苏沉几年前写的。在此基础上稍作改动,优化了爬取内容。

  想法

  1. 初始化一个百度百科词条的网址

  2.模拟浏览器访问URL,爬取该页面需要的条目内容,找出页面中所有站点链接(由于爬取的数据量较大,我们遵循shen和mongodb存储数据,我个人认为mango和python很好,是无缝连接)

  3.将链接单独存放在一个集合中,为保证速度,创建索引

  4.使用多线程获取库中链接爬取数据

  整体思路是这样的,还是比较清晰的

  代码

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

  完整代码

  一些细节

  也许百度做了一些简单的反爬虫,需要模拟浏览器获取数据。Python3还是很人性化的,满足了优采云的习惯。你只需要在你得到它时添加一个标题。所谓人生苦短,我用的是python,获取headers的方法比较简单。使用谷歌浏览器,F12->网络->点击名称下的下一个链接->标题->查找用户代理。

  一些技巧:

  [re.sub('[ \n\r\t\u3000]+', ' ', re.sub('|\xa0', '', unescape(str(t))).strip()) for t in text])#去除一些空格,对爬取的网页内容做简单处理

#\u3000 表示全角空白符,\xa0表示不间断空白符

  使用re.sub()函数处理爬取的网页数据简直就是神器。得到它。

  结果

  数据还在爬行。整个下午爬了6W多。网速不是很好。数据估计比较大。我不打算将它上传到 GitHub。我建议你自己试试。

  结束语

  开篇全是废话,开辟博客之路,逼着自己学习,希望能顺利毕业。

  本博客代码参考了苏神的作品,原文链接

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线