| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3225 人关注过本帖
标题:求助:帮帮我吧!头要成浆糊啦!
只看楼主 加入收藏
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
 问题点数:0 回复次数:22 
求助:帮帮我吧!头要成浆糊啦!
我最近的工作遇到了如下问题:
我近来需要每天在几个建材网站查找公司需要的建材信息,并把收集到的信息存到Excel表格或者FoxPro之类的数据库里,比如下面这样的表格:
========================
产品批次号   | 产品名称    |价格   |产品说明
LHJ-2007-12  | 铝合金门窗  |480    |经久耐用、
                                   |防冻,防裂
。。。。。。
========================
我这几天,每天就是不停的按着CTRL+C和CTRL+V,把网站上提供的表格数据中,我需要的几列复制到我的表格里。
---------------------------
就是这样的工作,才做了几天,我就快疯了:
首先,并不是表格的每一列的数据都要采纳,所以不能做整个表格的复制,只能在每行里选择几项,有的连着的三四个格,还算是可怜我了,让我省点事。有的是隔一个格要复制一次,我的手都已经抽筋了;
其次,最可恨的,有的网站的表格里,就像那个“产品说明”,他偏要把内容写成两行,中间加什么软回车,搞的我把那类的单元格复制到Excel格里,总变成上、下两格,还要我手工再整理一下。
而且,看目前的工作需要,这样的复制性事情,我可能还要做很久!!!!!
----------------------------
看了我遇的难题,大家应该能想到我想做什么了
我就是想搞个程序,打开程序后,按个钮,程序最小化并启动热键接收功能,当我按一个热键,比如:CTRL+1,程序就能把我正在看的网页上的表格的所有数据,抓下来,再根据我设计好的要求,把有用的存进我的表格或数据库里;当我按另一个热键,比如:CTRL+2,程序就停止抓数据,等我再找到我需要的数据页面,我再按抓取热键。。。。。。
先跟大家透个底,我是十年前,参加过一个多月的Foxbase的培训,之后就没再接触过编程了,这几天实在是为这事头痛,找朋友借了一本Vfp 6.0 的书在啃!没办法,赶鸭子上架了!
---------------------------
我想请大家帮忙的是:
假如,我现在硬啃着vfp,勉强编个处理接收到的数据、提取有用的列存到数据库里的程序的话??????我怎么做接收数据的功能呢?也就是怎样才能在看网页的时候,按个键子,把内容保存到内存?或者转交给提取功能模块?这种功能用VFP能实现吗?还是要另编个VC或者VB的子程序?迷糊中。。。。。。
或者哪位高手,您写一个程序,哪怕是帮我解决最头痛的接收网页数据的功能的部分,您把代码发上来或发到我的邮箱,代码里您费点心,多加点注释,也好让我学习和使用!
再不然,非要让我这没啥基础的硬着头皮啃天书,我也认了,毕竟天上不可能老是掉馅饼。可既然这么长的口水贴子您都看到最后了,您就给我指个方向、给个思路,我应该使用哪些知识、运用什么手段,才能把网页的表格里的数据给提取出来!
我当然是求速成啦,有现成的最好了,手抽筋的滋味我算是尝够了,没现成的,我就求个思路,就算有九点九成我编不出这样的程序,但至少我还有一线的希望!
我的邮箱[email]tfbl2007@[/email],请看完本贴的各位大侠高手们,帮帮我这门外汉吧!也希望有一天我也能算上个门里汉了,半个也好啊,哈哈!

[[italic] 本帖最后由 不懂就问呗 于 2007-12-16 12:02 编辑 [/italic]]
搜索更多相关主题的帖子: 铝合金 浆糊 数据库 建材 表格 
2007-12-16 11:52
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
第三行怎么多出一些name=.......的代码,我没加那些啊
2007-12-16 12:04
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11799
专家分:43421
注 册:2006-5-13
收藏
得分:0 
想法很好,可能用VFP实现起来比较难。需要类似金山词霸的屏幕取词功能,将鼠标所指位置的数据取出,通过右键菜单存入相应的列中。不知我的这个思路对不对。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2007-12-16 13:17
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
谢谢hu9jj兄的思路。不过,不是你想像的那么麻烦的网页

我查看的网页里,一般都是通篇的一个大表格,然后页面底部有第1,2,3......这样的换页链接,其它的页面,都是一样的大表格,我要获取的,就是这样的一页页的表格中的某几列,比如:
产品代号 |产品名称 |批次号 |产地 |报价 |规格说明 ........
这样的N列表格里,我就需要某中的名称,批次,报价,规格说明 等
而 产品代号 和 产地 等对我来说无用的列,就不要了
假设第一页第一行的1,3,5列要,2,4列不要,那么表格后面的行,甚至后面的十页,二十页,肯定都同样的取舍。

我自己想的思路是:
1、从网页的源代码入手:当点击打开一个页面,IE状态栏显示“完成”的时候,这个页的源代码就已经存到缓存文件夹了,我只要分析源代码页,按列取出我要的信息存入数据库,不要的列 还有表格以外的信息,就舍弃了。因为网页源代码里每个表格都会有表头,所以,从哪个td标记开始算做表格数据,应该很容易判断,又因为一页能显示的表格行数都是固定的,所以一页取多少行,也相对固定了(除最后一页行数可能不足外),这样就可以剔除与表格无关的网页布局表格标记了。

可是。。。。。。怎么才能在点击页面后,自动操作对应当前页的源代码呢?
2007-12-17 04:44
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
思路2:
不自动也行,太人工智能化了,我就可能要下岗了,哈哈!
咱再想个招,从当前页的第一行开始,拽鼠标,选择所有行,CTRL+C
信息进剪贴板了吧!

可是怎么把剪贴板里的信息,弄到程序里?????Windows API???
可怕的东西,听说过,没见过!
2007-12-17 04:50
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
思路3:
API就免了,那个太难,实在不行,咱来点文本文件操作的!

上面CTRL+C之后,能不能让程序自动粘到里临时的文本文件里
然后程序还能自动选择性的把每行中需要的列,转存到数据库或EXCEL表里?

。。。。。。还是很迷糊,依然存在解决不了的问题

文本文件好啊,表格里的有些数据背后藏着超链接,信息粘进文本文件,直接就过滤了,我正好不想要那些东东!
可是文本文件最大的缺点:像有的产品说明,他偏偏是中间带有软回车的,这样的信息进文本文件,本来一行的数据,就变成二行,三行了
EXCEL也是不能智能处理软回车,但它没有过滤超链接的功能,更不可取了
2007-12-17 05:16
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
唉,头痛!!!!!
我现在,白天,还是笨招,先大面积复制从第一行开始到表格末尾
粘进文本文件,过滤掉背后藏着的超链接
隔一行的末尾删一下,把产品说明的软回车导致的错误换行再弄回来
再复制文本里的内容进Excel 去掉不想要的列和行(有些产品的信息不需要收录)
怎么把Excel里的数据搞进FoxPro统一管理,我正在学习中
晚上,啃FoxPro......

什么时候才能从恶梦中解脱??????????????
2007-12-17 05:23
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
不知道这个代码你能不能用得着
CLEAR
lcStr=_CLIPTEXT
lcStr=CHRTRAN(CHRTRAN(CHRTRAN(lcStr,CHR(10),''),CHR(13),''),' ','')+'|'
?lcstr
FOR i=1 TO OCCURS('|',lcStr)
  IF i=1
    ?LEFT(lcStr,AT('|',lcStr)-1)
  ELSE
    ?SUBSTR(lcStr,AT('|',lcStr,i-1)+1,AT('|',lcStr,i)-AT('|',lcStr,i-1)-1)
  ENDIF
ENDFOR

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2007-12-17 10:41
不懂就问呗
Rank: 2
来 自:遥远的回忆
等 级:论坛游民
帖 子:51
专家分:13
注 册:2007-12-16
收藏
得分:0 
哈哈,昨天就看了版主的回复,不解~!!
因我以前学的FoxBase就没怎么学明白,勉强过了二级考试,对系统变量,根本就没见识过
昨天查了一些网上的参考书和资料,大致明白了程序段中用到的几个以前没学过的函数的含义,基本搞清楚了程序段后面部分的作用,但对如何操作剪贴板,仍不解~!!
今天正在看从网上下载的一份教学资料,第二章讲变量,就提到了系统变量的概念和
disp|list memo like这条命令
---------实验如下---------------
从别的文本文件中选取一段文字如“编程论坛bbs.”,按Ctrl+C,再切换到VFP,在命令窗里
aaa=_CLIPTEXT
disp memo like aaa
-----------------------------------------------------------------------------------
就这么简单。。。。。。从别处复制的信息,就在VFP里调出来了。。。。。
就这么简单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
就仅仅是一条将系统变量赋值给普通变量的语句。。。。。。。。。。。。。

!!!!!!!我这才明白,原来获取Windows剪贴板的内容,竟然仅仅是一个系统变量就可以搞定,我还以为要编什么API或者什么特别的程序呢!!!!

唉,不是问题太复杂,是我对使用的工具掌握的太片面,知之甚少,所以,本来简单的一件事,让我给想像和描述成大工程了。。。。。。让大家见笑了。。
2007-12-18 13:56
baichuan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:37
帖 子:953
专家分:589
注 册:2006-3-13
收藏
得分:0 
我想,其实只需要把东西复制下来,然后粘贴到一个文本文件,再处理文本文件,把自己不想要的数据去掉,然后通过VFP导入到DBF中,再根据需要输出相应的EXCEL即可!

2007-12-19 08:24
快速回复:求助:帮帮我吧!头要成浆糊啦!
数据加载中...
 
   



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

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