用户工具

站点工具


internet_archive专用页面

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
internet_archive专用页面 [2024/03/27 09:54] MNBVC项目组internet_archive专用页面 [2024/08/30 21:08] (当前版本) – [使用python操作IA] MNBVC项目组
行 10: 行 10:
  
 ==== 使用IA命令行工具以网址关键字进行搜索和下载 ==== ==== 使用IA命令行工具以网址关键字进行搜索和下载 ====
-以STWP网站 的wiki存档项目为例,该网站发起了一个[[将数千个wiki网站存档到IA的项目 | https://blog.save-web.org/blog/2023/04/16/%e5%a6%82%e4%bd%95%e5%ad%98%e6%a1%a3-dokuwiki-%e7%ab%99%e7%82%b9%ef%bc%88%e7%ac%ac%e4%b8%80%e5%b1%8a%e5%ad%98%e6%a1%a3%e9%a9%ac%e6%8b%89%e6%9d%be%e6%b4%bb%e5%8a%a8%ef%bc%89/]],去该项目的[[列表页 | https://docs.google.com/spreadsheets/d/1iDlrcKR0rziuxFM0P7cK4Ct6-WkGytqzamh3LTqNyUE/edit]]挑一个已经归档完成的[[网站 | http://fredblue.lautre.net/wiki/doku.php]]+以STWP网站 的wiki存档项目为例,该网站发起了一个[[https://blog.save-web.org/blog/2023/04/16/%e5%a6%82%e4%bd%95%e5%ad%98%e6%a1%a3-dokuwiki-%e7%ab%99%e7%82%b9%ef%bc%88%e7%ac%ac%e4%b8%80%e5%b1%8a%e5%ad%98%e6%a1%a3%e9%a9%ac%e6%8b%89%e6%9d%be%e6%b4%bb%e5%8a%a8%ef%bc%89/ | 将数千个wiki网站存档到IA的项目]],去该项目的[[https://docs.google.com/spreadsheets/d/1iDlrcKR0rziuxFM0P7cK4Ct6-WkGytqzamh3LTqNyUE/edit | 列表页]]挑一个已经归档完成的[[http://fredblue.lautre.net/wiki/doku.php | 网站]]
   ia search "fredblue.lautre.net"   ia search "fredblue.lautre.net"
 将返回搜索到的项目,例如:{"identifier": "wiki-fredblue.lautre.net_wiki-20230506"} 将返回搜索到的项目,例如:{"identifier": "wiki-fredblue.lautre.net_wiki-20230506"}
行 20: 行 20:
  
 ==== 批量下载collection ====  ==== 批量下载collection ==== 
-ia上还有很多其它组织/个人上传的文件,可以collection的形式形成组织,这里面可能包含很多items,每个item又可以包含很多个文件。例如ChinaXIV Mirror Project,要对其中的文件进行下载,首先去ia网站搜索该collection,可以把搜索条件限制为collection,搜到之后,进入collection首页,点击About(https://archive.org/details/chinaxivmirror?tab=about,在此页面记录其Identifier的值(chinaxivmirror)+ia上还有很多其它组织/个人上传的文件,可以collection的形式形成组织,这里面可能包含很多items,每个item又可以包含很多个文件。例如ChinaXIV Mirror Project,要对其中的文件进行下载,首先去ia网站搜索该collection,可以把搜索条件限制为collection,搜到之后,进入collection首页,点击[[https://archive.org/details/chinaxivmirror?tab=about | About]],在此页面记录其Identifier的值(chinaxivmirror)
 获取collection中全部的items,输出到itemlist.txt: 获取collection中全部的items,输出到itemlist.txt:
   ia search collection:chinaxivmirror --parameters rows:10 --itemlist  >itemlist.txt   ia search collection:chinaxivmirror --parameters rows:10 --itemlist  >itemlist.txt
行 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
行 35: 行 46:
       print(result['identifier'])       print(result['identifier'])
  
-问题: +一些有用的python代码@n_g @等战: 
-1、发现IA上还有类型为Access-restricted-item的文件,图标是一把锁,这些文件没找到下载办法,例如https://archive.org/details/tianya.cn?tab=collection。 +{{ ::ia_scripts.zip |}} 
-2、据说有某些文件需登陆后下载,但IA命令行没有找到登录设置。 +该压缩包中包含: 
-3、有些“借阅”类型的文件(通常是电子书),可以在线阅读或下载后一定时间内可阅读,这些文件均被DRM加密,不一定能够破解。dedrm参考:https://github.com/noDRM/DeDRM_tools+  - 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,其中d1d2对应该item的2个存储服务器,有时候主存储限速时,可尝试备用存储下载 
 +  https://archive.org//metadata/{identifier} 
 + 
 +===== 遗留问题 =====  
 +  - 发现IA上还有类型为[[https://archive.org/details/tianya.cn?tab=collection | Access-restricted-item的文件]],图标是一把锁,这些文件没找到下载办法 
 +  据说有某些文件需登陆后下载,但IA命令行没有找到登录设置。 
 +  有些“借阅”类型的文件(通常是电子书),可以在线阅读或下载后一定时间内可阅读,这些文件均被DRM加密,不一定能够破解。参考:[[https://github.com/noDRM/DeDRM_tools | dedrm]]
  
 ===== 参考文档 ===== ===== 参考文档 =====
-https://archive.org/developers/internetarchive/cli.html +[[https://archive.org/developers/internetarchive/cli.html | cli]] 
-https://archive.org/developers/tutorial-find-identifier-item.html#:~:text=You%E2%80%99ll%20use%20this%20value%20to%20fetch%20all%20items,In%20this%20example%2C%20the%20value%20is%20us_senate.%20+[[https://archive.org/developers/tutorial-find-identifier-item.html#:~:text=You%E2%80%99ll%20use%20this%20value%20to%20fetch%20all%20items,In%20this%20example%2C%20the%20value%20is%20us_senate.%20 | tutorial-find-identifier-item]] 
 + 
 +===== IA搜索关键字记录 ===== 
 +tianya.cn:有越60G的数据但全部都标记为不允许下载。
  
internet_archive专用页面.1711504459.txt.gz · 最后更改: 2024/03/27 09:54 由 MNBVC项目组