如题,谢牛!
1,某种变成语言中关于HTTP处理的部分(依照自己掌握的编程语言情况而定);
2,XML解析
3,数据存储(根据爬取的数据特点选择特定的数据结构进行存储)网页内容主要是:文本、音频、视频内容根据爬取的内容来选择
4,静态内容通过以上何容易处理;动态网页需要模拟器来模拟浏览器或出发动态内容的加载后,获取结果,
什么都可以做 看你自己
cheerio 兼容绝大多数jQuery css 选择器语法,学习成本小,想象空间大。
nodejs, superagent或axios抓url,cheerio解析内容,mongo直接存储先(有必要的话,后续再清洗转换到其他数据库)……酸爽难以言表
PHP,舍我其谁?寥寥几行代码就能把PHP官网的新闻采集下来存储到SQLite数据库并显示,不吓死你.
<?php // php -S 127.0.0.1:8181 -t /home/eechen/www/ // http://127.0.0.1:8181/index.php $file = '/home/eechen/data.db3'; $ddl = 'BEGIN; CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(200), content TEXT, time VARCHAR(20)); COMMIT;'; if(!file_exists($file)) { $db = new PDO('sqlite:'.$file); $db->exec($ddl); } else { $db = new PDO('sqlite:'.$file); } require dirname(__FILE__).'/simple_html_dom.php'; $html = file_get_html('http://cn2.php.net'); $db->beginTransaction(); foreach($html->find('article.newsentry') as $v) { $title = trim($v->find('h2.newstitle', 0)->plaintext); $content = trim($v->find('div.newscontent', 0)->plaintext); $time = trim($v->find('time', 0)->plaintext); $stmt = $db->prepare("INSERT INTO test (title, content, time) VALUES (?, ?, ?)"); $stmt->execute(array($title, $content, $time)); $stmt = null; } $db->commit(); header('Content-Type: text/plain; charset=utf-8'); var_export($db->query("SELECT * FROM test")->fetchAll(PDO::FETCH_ASSOC));
Simple-HTML-DOM 这个PHP的DOM操作库还是很方便的.http://simplehtmldom.sourceforge.net/manual.htm
PHP并行发起多个HTTP请求可以用curl_multi:
<?php $url[] = 'http://127.0.0.1:8080'; $url[] = 'http://127.0.0.2:8080'; $mh = curl_multi_init(); foreach($url as $k => $v) { $ch[$k] = curl_init($v); curl_setopt($ch[$k], CURLOPT_HEADER, 0); //不输出头 curl_setopt($ch[$k], CURLOPT_RETURNTRANSFER, 1); //exec返回结果而不是输出,用于赋值 curl_multi_add_handle($mh, $ch[$k]); //决定exec输出顺序 } $running = null; $starttime = microtime(true); //执行批处理句柄(类似pthreads多线程里的start开始和join同步) do { //CURLOPT_RETURNTRANSFER如果为0,这里会直接输出获取到的内容.如果为1,后面可以用curl_multi_getcontent获取内容. curl_multi_exec($mh, $running); //阻塞直到cURL批处理连接中有活动连接,不加这个会导致CPU负载超过90%. curl_multi_select($mh); } while ($running > 0); echo microtime(true) - $starttime."n"; //耗时约2秒 foreach($ch as $v) { $info[] = curl_getinfo($v); $json[] = curl_multi_getcontent($v); curl_multi_remove_handle($mh, $v); } curl_multi_close($mh); var_export($json); var_export($info);
最简单的流程:确认URL-->下载URL对应的页面源码(httpClient)-->分析源码中有价值信息(jsoup,正则)-->存储起来(数据库)-->可视化展示(图表)
Python
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(7)
1,某种变成语言中关于HTTP处理的部分(依照自己掌握的编程语言情况而定);
2,XML解析
3,数据存储(根据爬取的数据特点选择特定的数据结构进行存储)网页内容主要是:文本、音频、视频内容根据爬取的内容来选择
4,静态内容通过以上何容易处理;动态网页需要模拟器来模拟浏览器或出发动态内容的加载后,获取结果,
什么都可以做 看你自己
cheerio 兼容绝大多数jQuery css 选择器语法,学习成本小,想象空间大。
nodejs, superagent或axios抓url,cheerio解析内容,mongo直接存储先(有必要的话,后续再清洗转换到其他数据库)……酸爽难以言表
PHP,舍我其谁?寥寥几行代码就能把PHP官网的新闻采集下来存储到SQLite数据库并显示,不吓死你.
Simple-HTML-DOM 这个PHP的DOM操作库还是很方便的.
http://simplehtmldom.sourceforge.net/manual.htm
PHP并行发起多个HTTP请求可以用curl_multi:
最简单的流程:确认URL-->下载URL对应的页面源码(httpClient)-->分析源码中有价值信息(jsoup,正则)-->存储起来(数据库)-->可视化展示(图表)
Python