Laravel将采集WBE页面Table转换为CSV文件保存

一,准备环境 simple_html_dom

composer 找了很多源都没找到,我采用的是自己下载。

下载地址:https://sourceforge.net/projects/simplehtmldom/

解压后的文件

将 simple_html_dom.php 上传到 根目录/app/LIb/

并修改 composer.json 找到 autoload 引入类库

    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories",
            "app/Lib/simple_html_dom.php"  //增加
        ]
    },

准备工作完成。

二,使用

//$content 为 包含 table 的页面源码   
 private function get_table($content ){
		//echo "Start table2csv".PHP_EOL;

		$html = new simple_html_dom();
		@$html->load($content);
		$re = [];
		$csv = "";
		
		$fp = fopen ( '示例.csv' , 'w' );

		foreach($html->find('tr') as $element)
		{
			$th = array();
			foreach( $element->find('th') as $row)  
			{
				$th [] = $row->plaintext;
			}
			if(!empty($th)){
				$re[] = $th;
				fputcsv ( $fp , $th );
			}
			$td = array();
			foreach( $element->find('td') as $row)  
			{
				$td [] = $row->plaintext;
			}
			
			if(!empty($td)){
				$re[] = $td;
				fputcsv ( $fp , $td);

			}
		}
		fclose( $fp );
		return $re;
		//echo "end table2csv".PHP_EOL;
    }

保存文件效果

某校考研录取成绩

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据