用户工具

站点工具


internet_archive专用页面

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
internet_archive专用页面 [2024/03/29 21:06] MNBVC项目组internet_archive专用页面 [2024/08/30 21:08] (当前版本) – [使用python操作IA] MNBVC项目组
行 27: 行 27:
 获取到itemlist后,就可以下载: 获取到itemlist后,就可以下载:
   ia download --itemlist itemlist.txt   ia download --itemlist itemlist.txt
 +
 +===== 下载Wayback Machine网站快照 =====
 +当一个用户通过某些IA的api,例如Save Page Now,将网站上传到IA之后,IA会有一个自动化流程定期整理所有用户上传数据,并形成一个web archive数据集(warc),这个格式和common crawl的格式相同。这个数据集包含了特定时间点之间**所有用户**通过Save Page Now上传的网页,因此在IA上对应的collection标记为Restricted,不能直接下载。
 +
 +IA对特定网站的快照查看,通过wayback machine进行(https://web.archive.org/),该网站有一个类似common crawl cdx索引的索引服务器:https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server,可以对特定网站中的网页生成下载链接。
 +
 +所以,从IA下载特定网站的操作是:
 +  - 获取网站url,例如“1700多个中文独立博客”(https://blog.save-web.org/blog/2022/07/19/%e9%9c%87%e6%83%8a%ef%bc%8cstwp-%e7%ab%9f%e7%84%b6%e7%bb%99-1700-%e5%a4%9a%e4%b8%aa%e4%b8%ad%e6%96%87%e7%8b%ac%e7%ab%8b%e5%8d%9a%e5%ae%a2%e5%81%9a%e4%ba%86%e6%af%8f%e6%97%a5%e5%a4%87%e4%bb%bd/),要先去上述网页点击rss list(https://github.com/saveweb/rss-list/)点击Release,下载Blog.opml.xml,从xml中提取出特定网站的 url,例如androidperformance.com
 +  - 验证(可选),使用androidperformance.com关键字去wayback machine网站查看网页快照,直达链接:https://web.archive.org/web/20240000000000*/androidperformance.com
 +  - 使用这个关键字去way back machine的cdx api生成文件列表并下载。(这一步需要咨询一下负责common crawl数据的大佬,看他 能否改一下代码测试一下)
  
 ===== 使用python操作IA ===== ===== 使用python操作IA =====
 +pip install internetarchive
 因为是pip安装的包,可以直接在pythong中使用: 因为是pip安装的包,可以直接在pythong中使用:
   import internetarchive   import internetarchive
行 34: 行 45:
   for result in search:   for result in search:
       print(result['identifier'])       print(result['identifier'])
 +
 +一些有用的python代码@n_g @等战:
 +{{ ::ia_scripts.zip |}}
 +该压缩包中包含:
 +  - 1_get_ia_collection_items.py 将一个指定collection中所有的item名字导出
 +  - 2_get_ia_items_metadata.py 获取上一步导出的所有item的元数据(json)
 +  - 3_get_warc_url_from_metadata.py 从上一步的元数据中搜索warc/warc.gz文件,并获取该文件的URL(可直接导入下载工具批量多线程下载)
 +  - 5_warc_extract.py 从一个warc/warc.gz文件中提取特定mime类型的数据('application/pdf', 'text/html', 'text/plain', 'text/markdown'
 +{{ ::3_get_warc_url_from_metadata_v2.zip |}}
 +step3的v2版本,bug修复:
 +  - 由于数值以字符串形式存储,导致对于数值的排序不正确
 +  - 输入文件名优化为脚本当前文件夹
 +  - 对可下载文件的识别更准确,排除了.cdx.gz等无用的文件类型,同时新增rar、zip、7z等格式的收集。
 +  - 新增从文件名识别域名的功能,能够识别到的域名放在download_url_domain.txt,不能识别的放在download_url_nodomain.txt,这两个文件加起来等于v1版本的输出
 +  - 新增按域名对warc大小分类汇总,存放在download_url_summary.txt
 +
 +{{ ::6_get_warc_backup_url.zip |}} IA对于任意一个item,均有主用、备用两个URL。使用脚本3从脚本2生成下载URL时,默认只会返回下载地址1(D1),如果D1出现问题,可以尝试从备用下载地址(D2)下载,这个脚本的作用是输入任何一个下载URL,返回另外一个。
 +
 +已知问题:
 +5_warc_extract.py现在使用warcio,在处理某些版本的warc时有问题,建议更改为fastwarc(C++不支持zstd warc)或IA官方的warc工具(glang)
 +
 +===== 其它IA命令 =====
 +查看某个item的metadata,其中d1、d2对应该item的2个存储服务器,有时候主存储限速时,可尝试备用存储下载
 +  https://archive.org//metadata/{identifier}
  
 ===== 遗留问题 =====  ===== 遗留问题 ===== 
internet_archive专用页面.1711717591.txt.gz · 最后更改: 2024/03/29 21:06 由 MNBVC项目组