PHP提取8684公交数据
最近一年来一直在使用fedora,发现linux真是太适合我了,喜欢写程序,自己瞎倒腾,唉windows误我大好年华……
用PHP写了一段程序用于提取网页中的数据,相信搜索引擎也是差不多的想法,只不过他们数据多,算法好些,呵呵
[php]
<?php
/*
*此文件的目标是自动搜集存储8684上的深圳市公交数据
*
*由于http获得的网页为gbk编码PHP需要转换,只能将PHP重新编译
*/
//载入simple_html_dom类分析HTML文件
include 'simple_html_dom.php';
//创建一个SQLite数据库用于存储数据
$db = new SQLite3 ('BusData.db');
if ($db) //数据库创建成功
{
//创建站点名表
$db->exec('CREATE TABLE stationName (id INTEGER PRIMARY KEY AUTOINCREMENT,sName STRING)');
//创建线路表sName,sNote,sTo,sfrom分别存储线路名,备注,去程,回程
$db->exec('CREATE TABLE Line (sName STRING, sNote STRING, sTo STRING, sfrom STRING)');
}
analysis($db, 'http://shenzhen.8684.cn/x_24f5dad9');
$db->close ();
echo "Congratulations! Write Sucessfully!";
//******************
//分析数据,插入数据部分
//******************
function analysis($db, $url)
{
$html = new simple_html_dom ();
$html->load_file ($url); //载入HTML文件,可以从本地,也可是URL
$LName = ''; //用于记录公交线路名称
foreach ($html->find ('div[id=show] h2 a') as $lineName)
{
// echo mb_strlen($lineName->plaintext).'word<p>';本来想去掉公交名称中的‘路'字,不过后来发现整个命名不标准,要去可能去的乱七八糟了
//记录公交路线名称
$LName = $LName.mb_strcut(mb_convert_encoding($lineName->plaintext,'UTF-8','gbk'),6);
}
//记录线路备注信息:
$note = '|';
foreach ($html->find ('div[id=show] li') as $Note)
$note = $note.mb_convert_encoding($Note->plaintext,'UTF-8','gbk').'|'; //将备注连接
$i = 0; //用以判断行程(去程/回程)
$s_To = '.'; //记录去程路线
$s_from = '.'; //记录回程路线
//输出公交站点信息
foreach ($html->find ('span') as $element)
{
$i++; //控制变量自增
//i为奇数时判断为去程
if ($i % 2)
{
foreach ($element->find ('a
相关文档:
excel这类文件其实就是特殊格式的文本文件(应该所有格式都是特殊格式的文本文件和二进制文件),
excel不同的行体现在文本中的换行,里面的需要转义的字符包括,\和\r\n这两个,遇到这些字符的时候这个单元格需要用""格开 ......
<?php
$start = ip2long('192.168.1.1');
$start = sprintf("%u", $start) ;
$end = ip2long('192.168.1.50');
$end = sprintf("%u", $end) ;
for ($start; $start<$end; $start++){
echo long2ip($start)."<br>";
}
?> ......
<?php
class Access//Access数据库操作类
{
var $databasepath,$constr,$dbusername,$dbpassword,$link;//类的属性
function Access($databasepath,$dbusername,$dbpassword)//构造函数
{
$this->databasepath=$databasepath;
$this->username=$d ......
GD库是PHP进行图象操作一个很强大的库。
先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。
表单auth.html
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
< ......