kking
41
识典重爬的话好说,也就一两个小时,但是,例句在json中不显示,相关字体“查看更多”也在json中,点击展开,如果全爬的话,css和js合并的问题,json,css,js都超出我的能力范围,
2J6v.zip (8.4 MB)
29个js和4个css,和光.html
等个大大来一句,
“js和css搞好了,html只用爬哪到哪,然后加个头就行了,
<head><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="sdgjpc.css"><script src="sdgjpc.js"></script></head>
”
弱弱的问一句,对于同一IP持续异常(短期内三番五次)的访问流量,识典网就没有设置相应的防爬措施吗?或者识别典网就是放开了让爬?本人不懂爬术,只是好奇。
kking
44
# 仅使用正则表达式提取目标内容<a href=/tous/
match = re.search(r'window._ROUTER_DATA =(.*?)</script></body></html>', decoded_html, re.DOTALL)
if not match:
return False, "未找到匹配内容"
# 提取匹配内容并处理
content_html = f'<body><script>window._ROUTER_DATA ={match.group(1)}</script></body>'
# 优化处理:去除换行和多余空格
content_html = re.sub(r'\s+', ' ', content_html).strip()
这样可以吧,
<body><script>window._ROUTER_DATA ={match.group(1)}</script></body>
爬出来就是一行,
csshe jss你能搞定吧
我没比较,不过猜想和hdx的json数据格式一致。你这个写法抓取的内容太多,只要hdx就行了,也就是 hanyuDoc的值。
sd的无关内容太多,dyhy倒可以把整页抓下来。
kking
46
链接:百度网盘 请输入提取码
提取码:kkkk
下好了,果然说一两个小时,吹牛皮了,花了三个小时。
数据30个g,压缩之后5个g。
98682个字,
json数据全下了,想看汉大的,看汉大,想看康熙的,看康熙,还有说文解字注,等等
𫙲.rar (54.5 KB)
数据最小的数据为空,重下
2 个赞
辛苦!但是太大了,我电脑放不下、打不开。
json就是格式化数据,你把它看成xml也未尝不可。规整的格式更容易加html标签。用一个样本弄清性质与关系,其它依此类推,就可迎刃而解。如:
“hanyuDoc”:{“word”:“㐜”,“docType”:1,“pinyinList”:[“qiú”,“chóu”],“pinyinModule”:{“chóu”:{“detailParaphrase”:{“detailParaphraseList”:[{“paraphrase”:“同“仇”。”,“partOfSpeech”:“”,“shuZhengList”:,“subParaphrase”:}],“idiomParaphrase”:null,“source”:“《汉语大词典》”}},“qiú”:{“detailParaphrase”:{“detailParaphraseList”:[{“paraphrase”:“正。”,“partOfSpeech”:“”,“shuZhengList”:[{“sentence”:“謹于媐㐜,初貞,後寧。”,“authorList”:[“扬雄”],“setInPeriod”:“汉”,“work”:“《太玄·内》”,“annotateParaphraseList”:[{“sentence”:“㐜,正也。謹其媐正,男女道正,故貞。夫婦别,家室安,故後寧也。”,“authorList”:,“period”:“”,“work”:“范望注”}]}],“subParaphrase”:},{“paraphrase”:“同“仇”。”,“partOfSpeech”:“”,“shuZhengList”:,“subParaphrase”:}],“idiomParaphrase”:null,“source”:“《汉语大词典》”}}},“url”:“此处省略”}
sd数据格式与hdc略有不同,如果想直接套用hdc模板,需要修改一些字段名称。dyhy的数据格式与hdc的格式目测应该是一致的,可以直接套用。
kking
48
我在尝试抄袭你的hdc的方法,这次更进一步,直接把原版json内容一刀不切套入mdx中,解包就是json,打包就是mdx,免得打架,
<link rel="stylesheet" href="hydcds.css"><div id="output"></div><script>var data = {"DocID": "7205508335913910304", "Title": "㐌",
1 个赞
kking
49
看了一下,下载的东西实际上json数据应该没有那么大,还有很多的其他的内容。不过数据是完整的,有相关字,汉大康熙说文解字注,后面要么从html中提取纯json,然后导出为mdx的txt,写个css就行,要么直接var data =json,写个js展开,写个css样式,
一
<link rel="stylesheet" href="hydcds.css">
<script src="hydcds.js"></script>
<div id="root"></div>
<script>
window.__DICT_DATA__ = {
"UseDisasterCache": false,
"StabilityError": 0,
"Doc": {
"DocID": "7140264374857859080",
"Title": "一",
"BasicModule": {
"PNGImage": "local/2c8d4caa.png",
"StrokeOrderGIF": "local/60b2c303.gif"
}
},
"ItemList": [
{
"Pinyin": "yī",
"ParaphraseModule": {
"DetailParaphrase": {
"ParagraghList": [
{
"Paraphrase": "最小的正整数。",
"PartOfSpeech": "数词",
"ParagraghList": [
{
"Sentence": "彤弓一,彤矢百。",
"Work": "《书·文侯之命》"
}
]
}
]
}
}
}
],
"AudioURLMap": {
"v02fa5g10001": "local/yī.mp3"
}
};
</script>
</>
kking
51
我就不做了,我本来只是想提取dyhy的字头ID,目的已经达到了,json也上传了,如果有人想修复“相关汉字”中查看全部的功能,或者把json中的例句恢复到页面中,或者汉大,康熙,说文,各字典分离出来,那就等有缘人了,
数据太大只能望洋兴叹。
如果趁数据在你电脑上,能把汉语大词典部分剥离出来单独上传,我有空会做汉大字典版。剥离应该用正则就行。