步骤如下:
- 输入需要的关键词。
- 获取网页内容。
- 提取内容中词条的简介。
一般词条的格式:
-
纯文本介绍。
-
词多义或者含有其它词链接:
显示:
print为英文单词,其释义有打印、出版、出版物等。</div><div class="para" label-module="para">另外,print为常用编程命令。
正则提取:
data = re.sub(r'<([\s\S]*?)','',data)
- 另一种多解释:
please input wordkey:丁
丁,汉语常用字
[1]
,读作dīng、zhēng,最早见于甲骨文
[2]
,其本义是钉子,是“钉”的初文,后引申为壮健,又引申为人口和指某些专职服务的人等
[3]
。(基本信息栏参考资料:
[4]
正则提取:
data = re.sub(r'( |\n)','',data)
完整代码:
import re
import requests
#下载网页内容
def download(url):
if url is None:
return None
# 浏览器请求头
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'
headers={'User-Agent':user_agent}
r = requests.get(url,headers=headers)
if r.status_code == 200:
r.encoding = 'utf-8'
return r.text
return None
#提取百科词条简介
def get_data(html):
#regex = re.compile('<meta name="description" content="(.*?)">')
regex = re.compile('<div class="lemma-summary" label-module="lemmaSummary">(\s*)<div class="para" label-module="para">([\s\S]*?)</div>(\s*)</div>')
#data = [('\n', 'Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。', '\n')]
data = re.findall(regex, html)[0][1]
return data
if __name__ == '__main__':
#输入词条
keyword = input('please input keyword:')
url = 'http://baike.baidu.com/item/{}'.format(keyword)
html_cont = download(url)
try:
data = get_data(html_cont)
data = re.sub(r'<([\s\S]*?)>| |\n','',data)
print(data)
with open(keyword+'.txt', 'w', encoding='utf-8') as f:
f.write(data)
f.close()
except Exception as e:
print(keyword, 'is not exist,crawl failed !')
其他:
有不足的地方欢迎留言!