技术,有些时候还是值钱的。 ( 积分: 100 )

  • 主题发起人 主题发起人 lanyaoshi
  • 开始时间 开始时间
L

lanyaoshi

Unregistered / Unconfirmed
GUEST, unregistred user!
原来写过一个网页数据采集的程序,全当自己玩。今天这巧就用上了,有人找我,说能不能将一个网站上的数据采集下来,我看了一下,有800多页,2万多条数据,就说,1000元可以搞定,花了30分钟写完程序(COPY了原来大部分程序),收集了4个小时,交工,收钱。钱不多,但看到平时积累的技术派上用场,心理蛮高兴的。还有,这钱没上交LP,喝酒去罗。现在在学习数据结构,希望以后能用上呀。感觉指针蛮好玩的,如果指针搞不清楚,数据结构也没办法学下去了。写下这段文字,与大家共勉。希望各位富翁在2008都有新的收获!
 
... 啥时候我也能有这外快捞啊 [^][^]
 
多集累,钞票就在不远的前方
 
[:D] 基本上都是靠外快
 
外快是个好东西~!
 
我不赚外块好多年(根本就么赚会儿)。。。。。
 
多干活多积累!!!我要继续努力!
 
能在这透露一些关键技术吗
 
我用的是D2007,可以用中文来命名变量名,下面这些代码大富翁的离线包都有的,我只是做了重新的组合而已:
type
TDataRec = record
通用名: string;
商品名: string;
剂型: string;
规格: string;
包装材质: string;
转换比: string;
质量层次: string;
单位: string;
报价: string;
供应商名称: string;
生产企业名称: string;
end;
TDataArr = array of TDataRec;

function GetHtmlTableCell(aTable: IHTMLTable; aRow, aCol: Integer): IHTMLElement;
var
Row: IHTMLTableRow;
begin
Row := aTable.rows.item(aRow, aRow) as IHTMLTableRow;
Result := Row.cells.item(aCol, aCol) as IHTMLElement;
end;

function TfrmMain.GetDataFromUrl(const URL: string): TDataArr; //获取数据
var
Docintf: IHTMLDocument2;
tblintf: IHTMLTable;
iRow, RowCount, iTalbeNum, iTableCount,DataIndex: Integer;
list: IHTMLElementCollection;
item: IHTMLElement;
begin
bUrlComplete := False;
frmWebBrowser.Navigate(URL);
while not bUrlComplete do
Application.ProcessMessages;

Docintf := frmWebBrowser.Document as IHTMLDocument2;
//获取所有的表
list := Docintf.all.tags('table') as IHTMLElementCollection;
iTableCount := list.length;
DataIndex := 0;
for iTalbeNum := 0 to Pred(iTableCount) do
begin
item := list.item(iTalbeNum, varempty) as IHTMLElement;
if item.getAttribute('id', 0) = 'AutoNumber3' then
begin
tblintf := list.item(iTalbeNum, varempty) as IHTMLTable;
//从表格获取数据
RowCount := tblintf.rows.Length;
for iRow := 0 to RowCount - 1 do
begin
SetLength(Result, DataIndex + 1); //标题行排除
with Result[DataIndex] do
begin
通用名 := Trim(GetHtmlTableCell(tblintf, iRow, 0).innerText);
商品名 := Trim(GetHtmlTableCell(tblintf, iRow, 1).innerText);
剂型 := Trim(GetHtmlTableCell(tblintf, iRow, 2).innerText);
规格 := Trim(GetHtmlTableCell(tblintf, iRow, 3).innerText);
包装材质 := Trim(GetHtmlTableCell(tblintf, iRow, 4).innerText);
转换比 := Trim(GetHtmlTableCell(tblintf, iRow, 5).innerText);
质量层次 := Trim(GetHtmlTableCell(tblintf, iRow, 6).innerText);
单位 := Trim(GetHtmlTableCell(tblintf, iRow, 7).innerText);
报价 := Trim(GetHtmlTableCell(tblintf, iRow, 8).innerText);
供应商名称 := Trim(GetHtmlTableCell(tblintf, iRow, 9).innerText);
生产企业名称 := Trim(GetHtmlTableCell(tblintf, iRow, 10).innerText);
end;
Inc(DataIndex);
end;
end;
end;

end;
 
py6530, 你在广西吗?我在柳州,原来也在卫生系统,有机会多交流。
 
后退
顶部