【问题标题】:How to crawl external web search如何爬取外部网络搜索
【发布时间】:2014-05-30 15:42:38
【问题描述】:

我有一个网站http://www.op.nysed.gov/opsearches.htm,例如,用户选择职业并输入被许可人姓名并点击搜索 > 按钮将他们带到新页面以显示结果。

例如:

显示如下结果:

单击每个名称旁边的任何一组数字都会显示信息,例如:

为此,我查看了网络上的 scrapy、arachnode 和其他网络爬虫,但不太相信这是适合它的技术。

有人告诉我,我们必须从页面中抓取这些搜索结果。有什么可以做的吗?

爬虫可以像用户搜索一样抓取吗?

【问题讨论】:

  • 你应该从哪里得到这些数据,所有的互联网?如果是这种情况,那么搜索可能需要几个月才能完成......
  • 好的,我想我明白了,你想从页面上“窃取”该信息,对吧?
  • 是的,几乎窃取了数据:)

标签: c# web web-crawler robots.txt


【解决方案1】:

Web Crawling 程序将为您提供目标 Web 结构的本地副本,但不确定这是否是您想要的。

如果您想提取该数据并以以后可以查询的方式存储它,那么您必须创建自己的应用程序。

首先,这个想法是这样的:

手动通过Web散航并分析页面之间完成的帖子(例如,选择“架构师”并按下“架构师”并按下该按钮,或者在许可证上的链接时发送到服务器)。真正的查询,发送哪些变量以及它们的格式,然后分析页面的 HTML 结构以找到可以与正则表达式引擎一起使用的模式。

这部分会比较难,你必须分析传出和传入的 HTTP 查询(Firefox 中的 LiveHTTP Headers 补充可以帮助你很多)在你的程序中模拟它们,并构造可实现的正则表达式模式(测试正则表达式 @987654321 @ 非常方便)。

一旦您知道如何浏览页面结构并有模式来剥离数据,剩下的就相对容易了,使用 WebClient 创建客户端,浏览结构,剥离必要的数据并将其存储在数据库中。

如您所见,这是一个非常广泛的答案,但因为您的问题也非常广泛。

【讨论】:

  • 我得到了直接回复的查询:http://www.nysed.gov/coms/op001/opsc2a?profcd=08&plicno=001363&namechk=AND我将如何继续创建 Web 客户端?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 2010-11-23
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多