如何提取服务器端数据库动态生成的文本

Ilovecoding 2010-12-31 08:53:51
参考地址:http://acad.cnki.net/Kns55/brief/result.aspx?dbPrefix=CJFQ
这是中国知网的文献检索页面,点击那个“检索文献”按钮,下面可以得到查询的信息。我的问题是:如何能提取这些动态生成的文本和里面的链接。能给出具体解决方案最好,如果没有,能提供解决思路也行。
我在网上查了很长时间,但还是没有解决。
祝每一个关注帖子的朋友元旦快乐,新年好运!
...全文
102 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
glslian 2011-02-19
  • 打赏
  • 举报
回复
不好意思这段时间都没上,关于抓取的问题。你可以去找一下关于正则的类容去看看。如果不怎么会的话,你也可以到网上找到一些相应的下载软件,就是下载别人网站上的东西放在你的数据库中,你要用可以再次调用。比如说:火车头 等,之类的抓取软件! 没给你帮上忙还给加分了,真不好意思。
Ilovecoding 2011-01-04
  • 打赏
  • 举报
回复
谢谢以上各位的关注,此问题已经解决。6楼所说的方法可行,只不过所给的不是查询链接,经调试,已经得到正确的结果。结贴!
glslian 2011-01-03
  • 打赏
  • 举报
回复
楼主可以尝试的抓取下面的内容中的src:
<iframe width="750" height="442" frameborder="no" scrolling="no" vspace="0" src="../html/GB/CJFQ.htm" name="iframeResult" marginheight="0" hspace="0" id="iframeResult" style="display: block;">
</iframe>
希望可以给楼主一些帮助吧!网页内容变了,格局是一样的。所以在动态的链接也是可以抓取的。
glslian 2011-01-03
  • 打赏
  • 举报
回复
不知道楼主是不是要找到查询后的链接,你可以用抓取的方式。抓取以下代码中的SRC:
<iframe width="750" height="442" frameborder="no" scrolling="no" vspace="0" src="../html/GB/CJFQ.htm" name="iframeResult" marginheight="0" hspace="0" id="iframeResult" style="display: block;">
</iframe>
同一个页面里面的类容会变,但是格局是不变的。
希望 对你有帮助!
Ilovecoding 2011-01-03
  • 打赏
  • 举报
回复
问题解决了,由于返回数据是在iframe里面,所以我用查找每一个frame的方法得到数据。6楼给的也是一个思路,但对于在这个例子中行不通,因为当输入具体查找文献时,返回的页面连接都是一样的,也就是说通过检索返回页面链接中没有查询的信息。但我想可以通过分析里面的函数得到,只是没有实践。
Ilovecoding 2011-01-03
  • 打赏
  • 举报
回复
10楼的朋友,这方面我是菜鸟,我也想动态抓取,但好像是通过javascript的函数生成的,我如何能抓取到呢?希望能给个提示,谢谢!
bote_china 2011-01-01
  • 打赏
  • 举报
回复
检索发送的请求是
http://acad.cnki.net/kns55/request/search.aspx?action=undefined&NaviCode=*&PageName=ASP.brief_result_aspx&DbPrefix=CJFQ&DbCatalog=%e4%b8%ad%e5%9b%bd%e5%ad%a6%e6%9c%af%e6%9c%9f%e5%88%8a%e7%bd%91%e7%bb%9c%e5%87%ba%e7%89%88%e6%80%bb%e5%ba%93&ConfigFile=CJFQ.xml&db_opt=%u4E2D%u56FD%u5B66%u672F%u671F%u520A%u7F51%u7EDC%u51FA%u7248%u603B%u5E93&db_value=%u4E2D%u56FD%u5B66%u672F%u671F%u520A%u7F51%u7EDC%u51FA%u7248%u603B%u5E93&base_special1=%25&magazine_special1=%25&@joursource=SCI%u6536%u5F55%u520A%3DY&year_from=2000&year_to=2011&year_type=echar&au_1_sel=%u4F5C%u8005%2C%u4E2D%u82F1%u6587%u4F5C%u8005&au_1_sel2=%u673A%u6784&au_1_special1=%3D&au_1_special2=%25&txt_1_sel=%u4E3B%u9898&txt_1_relation=%23CNKI_AND&txt_1_special1=%3D&txt_1_extension=xls&his=0&__=Sat%20Jan%201%2000%3A17%3A11%20UTC%2B0800%202011

返回的就是检索结果页面,你用erbrequest发送这个请求,再用正则表达式分析结果就行了,致于检索的参数,可以从检索页面分析出来
Tosp2012 2011-01-01
  • 打赏
  • 举报
回复
看似簡單,其實不簡單。

沒研究過。

祝賀各位新年快樂。。。
wolftop 2011-01-01
  • 打赏
  • 举报
回复
飘过了。。。
Ilovecoding 2010-12-31
  • 打赏
  • 举报
回复
原以为很简单的事情,没想到有这么大的难度,甚至是不可行的。郁闷。再等2天,如果没有好的解决方案就结贴。谢谢两位的回答,祝元旦快乐!
healer_kx 2010-12-31
  • 打赏
  • 举报
回复
那也要服务器端支持啊。。。
一般服务器要提供你一个Rest API,或者什么Url才行。
wuyq11 2010-12-31
  • 打赏
  • 举报
回复
如果网站是通过AJAX等执行获取后显示的,那没法获取
Ilovecoding 2010-12-31
  • 打赏
  • 举报
回复
谢谢1楼的回复,自动填写和点击查询按钮已经完成了。但就是无法得到那个动态生成的数据。你说的用JS和AJAX执行获取的数据是什么意思?能给个链接吗?
wuyq11 2010-12-31
  • 打赏
  • 举报
回复
webbrower.navigate到相关页面,点击查询
获取webbrower加载完成后的document
或btnSubmit.InvokeMember("click");

js或AJAX执行获取的数据 ,httpwebrequest很难抓取

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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