【完工】中国大百科全书第三版mdx,2021.9.5重磅发布!

歷時半個月左右,與小草大俠合作完成。
感謝 @hua @last_idol @sxingbai 等大神提供技術支持。
抓取太慢了,平均3秒一條。還經常斷線。3000條掉線五六次是常見的。

中国大百科全书第三版,2021.9.5制作,洗版去重後,得到198814词条,图片9万余张。完整版还没有出齐。
純文字611M。
圖片原文件40多G,壓縮到4G內。清晰度基本不影響。
還有音頻視頻,做了在線加載。在 MDict.exe測試,音視頻都可以加載播放。

跳轉鏈接沒有做,保持原樣。
已經殫精竭慮了。
先這樣吧
等完整版出來再補充吧。

保留在线图片版。
度盘有关键字过滤,可能被和谐,站长可传到本站。

=========分割線====================
簡單記錄一下過程,以便後來參考
1、用Offline Explorer Enterprise 7 粗略抓取窮舉1-40萬地址,根據得到的文件大小區分有效地址與無效地址。无效内容 只有26K 有内容 但是不完整 的60K 左右, 最多20线程 5秒间隔。筛选出有效地址。
2、用PY下載有效地址。2秒間隔,設置定時下載。
01.py (917 字节)
每隔1小时运行一次.py (1.4 KB)
3、合併下載的網頁文件,洗版。用RAR軟件選擇存儲壓縮。再用EmEditor打開。
4、提取圖片地址,用PY下載。
图片批量下载OK.py (685 字节)
5、修改MDX,生成MDD。

=========分割線====================


還有一些英文百科詞條



音頻可以播放


視頻可以播放



下載:
链接: 百度网盘-链接不存在 提取码: 6kfa

=========分割線====================

目前文字版抓取基本完成。目前有20多万词条,由于有反爬,下了很久才抓完。
图片的下载遇到困难,希望高手出手相助,合力完成
已经有图片音视频地址,但批量下载难以完成
可推荐工具,或写代码用python下载皆可
测试用IDM勉强可以下载,但不全,有不少链接出错无法下载。寻求更完善的方法。
最好是放在自动创建子文件夹存放目录。
参考:

图片示例地址:
图片地址0.txt (2.8 KB)
图片链接放在浏览器无法直接打开,必须先打开词条网页,才能加载图片。

@last_idol @hua @sxingbai

28 个赞

给,加一个 Referer 就行了。

你只需要更改图片网址,header不用动。自动创建目录写好了,放进循环就自己做吧。

import requests
import os
# 你只需要改这儿
image_url = 'https://www.zgbk.com/upload/wordresources/wikiimage/2018/12/21/612481545397139858_thumbnail.png'

current_path = image_url[image_url.find('wikiimage/')+10:]
os.makedirs('/'.join(current_path.split('/')[:-1]))

with open(current_path, 'wb',) as f:
    r = requests.get(image_url,
    headers={'Referer':'https://www.zgbk.com/ecph/words?SiteID=1&ID=180450&Type=bkzyb&SubID=138634'})
    if r.status_code == 200:
        f.write(r.content)
        print('success')
    else:
        print(r.text)

image

4 个赞

感谢! 有一个问题:当文件夹已存在时,无法创建该文件夹

FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: '2021/06/08'

PS:放进循环不会写,可否再拨冗帮忙写一下?

1 个赞

没有去看原网页,就加了老大给的请求头。
你要先安装grequests
pip grequests
其它需要做的就是添加自己的文件地址,看清楚我写的说明。
多线程下载.py (1.5 KB)

1 个赞
import requests
import os

def download_media(media_url):
    current_path = media_url[media_url.find('wikiimage/')+10:]
    os.makedirs('/'.join(current_path.split('/')[:-1]), exist_ok=True)
    with open(current_path, 'wb',) as f:
        r = requests.get(media_url,
        headers={'Referer':'https://www.zgbk.com/ecph/words?SiteID=1&ID=180450&Type=bkzyb&SubID=138634'})
        if r.status_code == 200:
            f.write(r.content)
        else:
            print(r.text)

if __name__ == '__main__':
    with open('图片地址0.txt', 'r',encoding="utf8") as f:  # 网址文件
        urls = f.readlines()
    for url in urls:
        download_media(url[:-1])
2 个赞

代码运行不了,您再看看。

厉害了,成功运行!感谢!

1 个赞

有能用的就行了。不知道你安装grepuests没有,这是我在下载大辞海音频资料时写的。

1 个赞

安装了。谢谢

那出错提示是啥?

Traceback (most recent call last):
  File "F:\图片下载\多线程下载.py", line 11, in <module>
    with open(img1,'r') as f1:
FileNotFoundError: [Errno 2] No such file or directory: ''

进程已结束,退出代码为 1

我在说明中让你先建一个空文档,你没建。这个脚本考虑得相对周全一些,只不过懒了一懒,没有先建文件。
算了,你在下载就好。但老大的代码没考虑出错的情况。

图片地址TXT,放在哪?

img1=r’’
这个单引号中间放图片地址txt
img2=r’’
这个中间是自建的空txt
imgname=f’d:\cihai7{s}’
d:\cihai7可以改成自己想要的盘符和目录

2 个赞

改了下,可以下载了。不过,中文地址出错:这个地址

https://www.zgbk.com/upload/wordresources/wikiimage/2021/06/07/德特画像,现藏加尔各答维多利亚纪念堂(victoriamemorial)(图片提供者待查)_thumbnail.jpg

错误

Traceback (most recent call last):
  File "F:\图片下载\img1\000.py", line 32, in <module>
    with open(imgname,"ab") as f3:
FileNotFoundError: [Errno 2] No such file or directory: 'd:\\cihai7\\upload\\wordresources\\wikiimage\\2021\\06\\07\\%E5%BE%B7%E7%89%B9%E7%94%BB%E5%83%8F%EF%BC%8C%E7%8E%B0%E8%97%8F%E5%8A%A0%E5%B0%94%E5%90%84%E7%AD%94%E7%BB%B4%E5%A4%9A%E5%88%A9%E4%BA%9A%E7%BA%AA%E5%BF%B5%E5%A0%82%EF%BC%88victoriamemorial%EF%BC%89(%E5%9B%BE%E7%89%87%E6%8F%90%E4%BE%9B%E8%80%85%E5%BE%85%E6%9F%A5)_thumbnail.jpg'

进程已结束,退出代码为 1
1 个赞

如果你的文件用的都是utf-8格式,那就把open(img1,'r') 改成open(img1,'r',encoding='utf-8') 试试

阿弥陀佛兄,又要放大招!

阿弥陀佛兄,计划什么时候放出啊,在期待哈。多谢。

1 个赞

放出了。。。。。

3 个赞

多谢佛兄!工程浩大,着实不易。但现在抓取不全,将来再抓用不用从头开始?