-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfictcore.py
More file actions
38 lines (30 loc) · 1.02 KB
/
Copy pathfictcore.py
File metadata and controls
38 lines (30 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/python
from bs4 import BeautifulSoup
import re,sys
import flib
reload(sys)
sys.setdefaultencoding('utf-8')
def get(req):
output=''
url="http://dict.cn/"+req
content=flib.furlopen(url)
soup=BeautifulSoup(BeautifulSoup(content).prettify(),'html.parser') # haha
sectiondef=soup.find(class_="section def")
if sectiondef==None:
output=output+" Sorry , I didn't find such a word. Do you mean:"
h3s=soup.find(class_="section unfind").findAll("li",style=False)
content=re.sub(re.compile(r"\s*\n+\s*</a>\s*\n+\s*",re.S)," : ",str(h3s)[1:-1])
content=re.sub(re.compile(r"<.*?>",re.S),"",content)
content=re.sub(re.compile(r"\s*\n+\s*,\s*\n+",re.S),"\n",content)
output=output+content
else:
phonetic=soup.find(class_="phonetic")
if hasattr(phonetic,"text"):
enus=phonetic.find(lang="EN-US")
if hasattr(enus,"text"):
output=output+enus.text
h3s=sectiondef.findAll(re.compile(r"h3|li"),style=False)
for h3 in h3s:
output=output+h3.text
output=re.sub(r"\n+\s*\n+","\n",output)
return output[1:-1]