| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7939 人关注过本帖, 2 人收藏
标题:如何提取网页内的数据
只看楼主 加入收藏
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
结帖率:90.91%
收藏(2)
已结贴  问题点数:20 回复次数:22 
如何提取网页内的数据
如何编程实现。然后保存在DBF表中。
一共有486页数据。
http://www.
搜索更多相关主题的帖子: 编程 如何 网页 
2012-12-29 18:50
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11783
专家分:43421
注 册:2006-5-13
收藏
得分:0 
只要网页的地址有规律可循,就可以通过循环逐一提取页面的内容,并保存在相应的表中。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2012-12-29 19:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
关键是翻页获取下一页数据的问题

坚守VFP最后的阵地
2012-12-29 20:19
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏(1)
得分:20 
跟着楼主弄错了,只有476页,把486改为476,以免多了十次空循环。
程序代码:
starttime=SECONDS()*1000
CLEAR
test=CREATEOBJECT("msxml2.xmlhttp")
CREATE CURSOR  安徽药品采购 (商品流水号 c(6),通用名 c (40),剂型 c (20),规格 c(60),包装 c(9),生产企业 c(40),中标价 c(10))
FOR i = 1 TO 476
    weblites=[http://www.]+TRANSFORM(i)
    test.OPEN("get", weblites,.F.)
    test.SEND
    shuchu=""
    shuchu= STRCONV(test.responsetext,2)
    shuchu=STRTRAN(shuchu,CHR(10),"")
    shuchu=STRTRAN(shuchu,CHR(13),"")
    shuchu=STRTRAN(shuchu,CHR(8),"")
    shuchu=STRTRAN(shuchu,CHR(9),"")
    shuchu=STRTRAN(shuchu,CHR(11),"")
    shuchu=STRTRAN(shuchu,CHR(12),"")
    shuchu=STREXTRACT(shuchu,[</tr><tr>],[</td></tr></table>])
    DIMENSION ziduan(7)
    DO WHILE not EMPTY(shuchu)
        FOR ii=1 TO 7
            ziduan(ii)=STREXTRACT(shuchu,[<td>],[</td>])
            shuchu=STREXTRACT(shuchu,[</td>],[])
        ENDFOR
        INSERT INTO 安徽药品采购 FROM ARRAY ziduan
        shuchu=STREXTRACT(shuchu,[</tr><tr>],[])
    ENDDO 
ENDFOR
endtime=SECONDS()*1000
TIMES=endtime-starttime
MESSAGEBOX("你所花费的时间为"+ALLTRIM(STR(TIMES,20))+"毫秒",64,"测试")
BROWSE


[ 本帖最后由 月沐庭轩 于 2012-12-29 21:39 编辑 ]

坚持学习vfp,QQ:306805680
2012-12-29 20:26
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
数据太多,花费时间也多。
第一次运行时没有缓存,时间为:57900毫秒,
图片附件: 游客没有浏览图片的权限,请 登录注册

第二次运行时没有缓存,时间为:1589毫秒,
图片附件: 游客没有浏览图片的权限,请 登录注册

坚持学习vfp,QQ:306805680
2012-12-29 20:30
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 3楼 sdta
取下一页数据,请分析以下网页代码:
程序代码:
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>

<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" 

<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$pager1','17')">

坚持学习vfp,QQ:306805680
2012-12-29 20:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
共476页,楼主自己都没认真看
程序代码:
CLEAR
CREATE CURSOR YPINFO (流水号 C(5),通用名 C(40),剂型 C(40),规格 C(40),包装 C(40),企业名称 C(60),中标价 N(8,2))
T1=SECONDS()
FOR P=1 TO 476
    LCURL=[http://www.]+TRANSFORM(P) &&翻页数据提取关键所在,刚从月版处偷来的。
    OHTML = CREATEOBJECT("MICROSOFT.XMLHTTP")
    OHTML.OPEN([GET],LCURL,.F.)
    OHTML.SEND
    LCSTR = STRCONV(OHTML.RESPONSETEXT,2)
    LCSTR=[</tr><tr>]+STREXTRACT(LCSTR,[</tr><tr>],[</table>])
    FOR I=1 TO OCCURS([</tr><tr>],LCSTR)
        A=STREXTRACT(LCSTR,[</tr><tr>],[</td>]+CHR(13)+CHR(10),I)+[</td>]
        LOCAL B(7)
        FOR I1=1 TO OCCURS([<td>],A)
            B(I1)=STREXTRACT(A,[<td>],[</td>],I1)
        ENDFOR
        INSERT INTO YPINFO VALUES (PADL(B(1),5,[0]),B(2),B(3),B(4),B(5),B(6),VAL(B(7)))
    ENDFOR
ENDFOR
MESSAGEBOX([提取数据共用了]+TRANSFORM((SECONDS()-T1)*1000)+[毫秒])
BROWSE


坚守VFP最后的阵地
2012-12-29 20:58
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9808
专家分:26987
注 册:2012-2-5
收藏
得分:0 
回复 6楼 月沐庭轩
多谢月版了,听君一席话,胜读十年书。圣人的话永远是对的。

坚守VFP最后的阵地
2012-12-29 21:01
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
规格 C(40)远远不够,有的地方太多了。C(60)才差不多了。这个表每一页都翻到,真困难。

坚持学习vfp,QQ:306805680
2012-12-29 21:17
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
以下是引用sdta在2012-12-29 21:01:27的发言:

多谢月版了,听君一席话,胜读十年书。圣人的话永远是对的。

S版谦虚。
你的这句话,据我分析,有歧义,究竟我是圣人,还是“听君一席话,胜读十年书”是圣人说的?

坚持学习vfp,QQ:306805680
2012-12-29 21:20
快速回复:如何提取网页内的数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046870 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved