mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-10-31 14:44:18 +08:00 
			
		
		
		
	Restore deleted repositories
This commit is contained in:
		
							
								
								
									
										37
									
								
								_posts/2019-05-27-wikipic.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								_posts/2019-05-27-wikipic.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| --- | ||||
| layout: post | ||||
| title: 使用PHP批量下载Mediawiki站点的图片 | ||||
| tags: [PHP, Mediawiki, 图片] | ||||
| --- | ||||
|  | ||||
|   又是万能的PHP!不过还是Mediawiki API的功劳<!--more-->    | ||||
|   最近我为了备份一下[某个Wiki站](http://zh.moegirl.org/)(Ta们把R18名字空间的东西删的一干二净 ~~后来才知道原来转移到了[一个Wiki上](https://www.hmoegirl.com/),真的是好久没关注了~~ ),然后学习了一下Mediawiki API来下载整个Wiki(Ta们把站点导出也给弄没了QAQ)    | ||||
|   文本很好下载,但是Mediawiki的图片我不知道存在哪里,API文档翻烂了也没找到把图片解析成地址的API,那怎么办呢?    | ||||
|    | ||||
| # 解决方案 | ||||
|   “解析”?emmmm……parse?不错,正好有这么一个action,好的,那就这样搞吧! | ||||
|    | ||||
| # Code | ||||
| ```php | ||||
| <?php | ||||
| set_time_limit(0); | ||||
| ignore_user_abort(); | ||||
| $list = array("图片数组"); | ||||
|  | ||||
|     $arrlength=count($list); | ||||
| for($x=0;$x<$arrlength;$x++) { | ||||
|     $tmp = json_decode(file_get_contents("https://MediaWiki的地址/api.php?action=parse&text=[[File:".$list[$x]."]]&contentmodel=wikitext&formatversion=2&format=json"),true); | ||||
|     $preg='/src="(.*?)"/is'; | ||||
|     preg_match($preg,$tmp[parse][text],$match); | ||||
|     $tt=$tt." | ||||
|     ".$match[1]; | ||||
| } | ||||
| $markout = fopen("List.txt", "w") or die("Unable to open file!"); | ||||
| fwrite($markout, $tt); | ||||
| fclose($markout); | ||||
| die("Finish"); | ||||
| ?> | ||||
| ``` | ||||
|  | ||||
| # P.S. | ||||
| 如果需要获取该Wiki的所有图片,可以从`api.php?action=query&list=allimages`这里获取。 | ||||
		Reference in New Issue
	
	Block a user