在使用爬虫获取维基百科数据时看到了一个很好的项目:
博客:https://blog.51cto.com/u_15919249/5962100
项目地址:https://github.com/wjn1996/scrapy_for_zh_wiki
但在使用过程中遇到若干问题,记录一下:
The 'more_itertools' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.:
解决方案:
或许并不是环境本身的问题。
- pip show more_itertools没有则安装,有则下一步
- 把queue.py 文件及该文件中的Queue类均重命名分别为myqueue.py 与 MyQueue。
- 将重命名后的myqueue.py放到spiders文件夹下,
- 将spider下单wiki.py 中的from queue import Queue修改为from .myqueue import MyQueue
原因可能是Python中自带queue库,而博主这里是想调用自己的queue。
后面同样要把filter_words.py文件拿到spider下,并修改wiki中的from filter_words import filter_url 为from .filter_words import filter_url
在wiki.py繁简转换中加判断,避免输入为空
'''
def Traditional2Simplified(sentence):
'''
将sentence中的繁体字转为简体字
:param sentence: 待转换的句子
:return: 将句子中繁体字转换为简体字之后的句子
'''
sentence = Converter('zh-hans').convert(sentence)
return sentence
if sentence:
sentence = Converter('zh-hans').convert(sentence)
return sentence
else:
return sentence
'''
在wiki.py中修改
'''
content_entity = search.xpath("//h1[@id='firstHeading']/text()").extract_first()
为
content_entity = search.xpath("//h1[@id='firstHeading']/span/text()").extract_first()
'''