怎样抓取etymonline的词根与解释
刚开始学BeautifulSoup,对着API撸的。print语句里转码成GBK是为了避免CMD输出时抛ERROR。#!/usr/bin/env python# -*- coding: utf-8 -*-"""抓取词根与解释http://etymonline.com/"""import requests, sysfrom bs4 import BeautifulSoupdef query(etyma): url = r"http://etymonline.com/index.php?allowed_in_frame=0\u0026amp;search={0}\u0026amp;searchmode=none" url = url.format(etyma) return requests.get(url).textdef get_data(etymas): for etyma in etymas: html = query(etyma) soup = BeautifulSoup(html, "lxml") datas = soup.find_all(name=lambda x: x and "a" == x.name and not x.has_attr( "class"), text=lambda x: x and (etyma + " ") in x) for data in datas: word = data.string desc = "".join(data.find_next(name="dd").strings) print("单词:", word.encode(\u0026#39;gbk\u0026#39;, errors = \u0026#39;ignore\u0026#39;).decode(\u0026#39;gbk\u0026#39;)) print("释义:", desc.encode(\u0026#39;gbk\u0026#39;, errors = \u0026#39;ignore\u0026#39;).decode(\u0026#39;gbk\u0026#39;), end="\"*2)if __name__ == \u0026#39;__main__\u0026#39;: etymas = if len(sys.argv) \u0026gt; 1: etymas.extend(sys.argv) else: etymas = print("没有输入单词,下面演示查询:", "、".join(etymas), end = "\"*2) get_data(etymas)把文件另存为etyma.py,放入PythonScript文件夹,然后把这个目录加入环境变量。文件名可以自由更改,只要和下面的命令保持一致即可。用法:
【怎样抓取etymonline的词根与解释】
■网友
你的问题是: 把字根(词源)意义(也就是 "…")里面的字去比对 一般词典的解释,然后依意思分类吗?但是古代的词义不太可能全部和现代一样
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义
