希望文章对你有所帮助,尤其是web爬虫初学者和nlp相关同学。当然你也能,懂的~
目录:
0 前言
1 lantern访问中文维基百科
2 selenium调用chrome自动访问维基百科
3 selenium爬取维基百科信息
代码及软件下载地址:
<a target="_blank" href="http://download.csdn.net/detail/eastmount/9422875">http://download.csdn.net/detail/eastmount/9422875</a>
在对海量知识挖掘和自然语言处理(natural language processing,简称nlp)中会大量涉及到三大百科的语料问题,尤其是中文汉字语料问题,包括:百度百科、互动百科和维基百科。其应用涉及命名实体(named entity,简称ne)消歧、实体对齐、双语机器翻译、推荐系统、情感分析、知识图谱等领域。
其中三大百科准确率方面是维基百科>互动百科>百度百科;中文涉及实体内容是百度百科>互动百科>维基百科。如下图所示,维基百科wikipedia页面通常包括:title(标题)、description(摘要描述)、infobox(消息盒)、categories(实体类别)、crosslingual
links(跨语言链接)等。

但问题来了:中文维基百科总是被屏蔽,第一个问题就是如何访问中文维基百科呢?
lantern:一款免费强大的帆樯软件,译为“灯笼”。点击exe即可运行,非常巧小的一款软件;据说是google公司推出的,但确实良心制作。
同时你可以访问youtube和维基百科了,就是这么简单~
selenium调用firefox浏览器直接设置代码"driver = webdriver.firefox()"即可,但是调用chrome需要下载chromedriver.exe驱动。同时放置于chrome安装目录下:
我的目录:c:\program files (x86)\google\chrome\application,如果你报错:
同时添加该路径到环境变量path中:
下面简单四句代码即可调用浏览器自动访问维基百科页面:
爬取的方法与前面百度百科的方法类似,现在txt中定义实体名称,即需要爬取的网页名称,再去到具体页面爬取内容。这里需要讲述一个方法:
https://zh.wikipedia.org/wiki/阿富汗
可以访问中国页面,同样该方法适用于互动百科,即:url+文件中读取实体名称
当然百度百科,你只需要获取输入框的按钮信息,然后输入读取文件名称,自动回车或点击即可。其中你可能会遇到一些存在歧义的页面,再处理下即可。同时维基百科和互动百科中存在分类页面,归纳了自己想要的内容,也比较方便。
最后是代码及运行结果:
运行结果如下图,共爬取了每个实体的10段信息,而百度摘要会有id,可只爬取摘要。
同样,你也可以通过下面这部分代码爬取infobox信息,首先给出html源码标签:
核心代码:
elem_value = driver.find_elements_by_xpath("//table[@class='infobox']")
具体代码如下:
运行结果如下图所示:
最后希望文章对你有所帮助,还是那句话:如果刚好你遇到这个问题,就会受益匪浅;否则感觉没什么技术含量,不过确实也挺简单的,但是灯笼还是非常强大的。一月份终于要结束了,不知道多少个熬夜到早上10点,回家好好享受下生活吧~