delphi 网页提取数据

linzhen6790 2010-07-19 01:59:42
<td width="68" height="30" align="right">选 择 省:</td>
<td width="108"><select name="_province" onchange="sel_pro('_province','_city');" id="_province" class="search_slt"><option value="">==省级名称==</option>
<option value="110000">北京市</option>
<option value="120000">天津市</option>
<option value="130000">河北省</option>
<option value="140000">山西省</option>
<option value="150000">内蒙古自治区</option>
<option value="210000">辽宁省</option>
<option value="220000">吉林省</option>
<option value="230000">黑龙江省</option>
<option value="310000">上海市</option>
<option value="320000">江苏省</option>
<option value="330000">浙江省</option>
<option value="340000">安徽省</option>
<option value="350000">福建省</option>
<option value="360000">江西省</option>
<option value="370000">山东省</option>
<option value="410000">河南省</option>
<option value="420000">湖北省</option>
<option value="430000">湖南省</option>
<option value="440000">广东省</option>
<option value="450000">广西壮族自治区</option>
<option value="460000">海南省</option>
<option value="500000">重庆市</option>
<option value="510000">四川省</option>
<option value="520000">贵州省</option>
<option value="530000">云南省</option>
<option value="540000">西藏自治区</option>
<option value="610000">陕西省</option>
<option value="620000">甘肃省</option>
<option value="630000">青海省</option>
<option value="640000">宁夏回族自治区</option>
<option value="650000">新疆维吾尔自治区</option>
<option value="990000">新疆建设兵团</option></select>



问题:如上面的数据
我获取得了网页的源码,怎么提取里面的数据格式为

==省级名称==
120000 天津市
130000 河北省
。。。。
...全文
467 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhunanhui 2010-07-29
  • 打赏
  • 举报
回复
哪用这么麻烦,用正则表达式可以轻而易举解决问题
linzhen6790 2010-07-23
  • 打赏
  • 举报
回复
问题:
1.我上面分析的源码是只能‘逐行分析’如果超出一行,分析就会错误,
2.如果要分析多行,象:
<TD align=middle>1</TD>
<TD align=left><A href="index.shtml?method=viewProduct&id=326585"target=_blank>香雪海 BD/BC-108JA</A></TD>
<TD align=left>浙江上工电器制造有限公司</TD>
<TD align=middle>冰箱</TD>
<TD align=middle>1279 元</TD></TR>

要怎么分析:
分析出来的结果是这样:
1 index.shtml?method=viewProduct&id=326585 香雪海 BD/BC-108JA 浙江上工电器制造有限公司 冰箱 1279
linzhen6790 2010-07-23
  • 打赏
  • 举报
回复
<TBODY>
<TR align=middle>
<TH width="9%">序号</TH>
<TH width="28%">产品型号</TH>
<TH>企业名称</TH>
<TH width="15%">产品类别</TH>
<TH width="15%">限价</TH></TR>
<TR>
<TD align=middle>1</TD>
<TD align=left><A href="index.shtml?method=viewProduct&id=326585" target=_blank>香雪海 BD/BC-108JA</A></TD>
<TD align=left>浙江上工电器制造有限公司</TD>
<TD align=middle>冰箱</TD>
<TD align=middle>1279 元</TD></TR>
<TR>
<TD align=middle>2</TD>
<TD align=left><A href="index.shtml?method=viewProduct&id=326586" target=_blank>香雪海 BD/BC-130JA</A></TD>
<TD align=left>浙江上工电器制造有限公司</TD>
<TD align=middle>冰箱</TD>
<TD align=middle>1339 元</TD></TR>
<TR>
<TD align=middle>3</TD>
<TD align=left><A href="index.shtml?method=viewProduct&id=326587" target=_blank>香雪海 BD/BC-132JD</A></TD>
<TD align=left>浙江上工电器制造有限公司</TD>
<TD align=middle>冰箱</TD>
<TD align=middle>1339 元</TD></TR>
<TR>

产品查询结果



linzhen6790 2010-07-23
  • 打赏
  • 举报
回复
自己解决了,分析源

private
function getstr1(str:string):string;
function getstr2(str:string):string;
{ Private declarations }
public
{ Public declarations }

end;
function Tform1.getstr1(str:string):string;
var
beginpos,endpos:integer;
substr:string;
begin

result:='';
endpos:=pos('"',str);
substr:=copy(str,endpos+1,length(str)-endpos);
beginpos:=pos('"',substr);
result:=copy(substr,1,beginpos-1);
end;

function Tform1.getstr2(str:string):string;
var
beginpos,endpos:integer;
substr:string;
begin
result:='';
endpos:=pos('>',str);
substr:=copy(str,endpos+1,length(str)-endpos);
beginpos:=pos('<',substr);
result:=copy(substr,1,beginpos-1);
end;

procedure TForm1.AdvGlowButton7Click(Sender: TObject);
var
temp:String;
i:integer;
begin
memo3.Clear;
for i:=0 to Memo2.Lines.Count do
begin
temp:=Memo2.Lines[I];
//将一行写入数据库字段中
memo3.Lines.Add(getstr1(temp)+' |'+getstr2(temp)+' |'+' |');
end;


end;
zhuolong1987 2010-07-20
  • 打赏
  • 举报
回复
解析一下,逐个节点获取即可
bdmh 2010-07-19
  • 打赏
  • 举报
回复
就是一些字符串的操作函数,自己逐个弄
或者用正则
cnsillycat 2010-07-19
  • 打赏
  • 举报
回复
数据截取呀。。。

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧