【问题标题】:Save Search Results of A Search Engine [closed]保存搜索引擎的搜索结果[关闭]
【发布时间】:2012-10-25 04:05:43
【问题描述】:

我正在尝试编写一个应用程序来自动在搜索引擎上执行搜索(在搜索框中搜索指定的电话号码)并将结果页面作为任何内容(XML、文本)获取。我已经尝试了几个网络爬虫/爬虫,但我没有找到执行搜索并保存结果数据的东西。他们只能得到请求的页面数据,这不是我需要的。

语言可以是C#、VB.Net或Java,只要提供解决方案就可以。谢谢。

我正在寻找执行此操作的工具或代码 sn-p。

【问题讨论】:

  • 我正在寻找执行此操作的工具或代码 sn-p。
  • 你指的是什么搜索引擎?我觉得这个问题很不清楚。
  • 这是一个没有API的搜索引擎。 Hitta.se。瑞典搜索引擎。
  • 我猜只是一个模仿浏览器的 webrequest 会得到你吗?
  • 我认为你必须自己实现它。执行查询,保存返回的 html 网页 -> 取决于您从中获得所需值的 html 结构。但是,如果搜索引擎本身发生了变化,那你就完蛋了。

标签: c# vb.net visual-studio web search-engine


【解决方案1】:

这样的函数会将数据提取为字符串,但您必须自己解析其中的数据:

Public Shared Function GetWebPageData(ByVal address As Uri) As String
    Dim request As HttpWebRequest
    Try
        request = DirectCast(WebRequest.Create(address), HttpWebRequest)

        Using response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
            Using reader As StreamReader = New StreamReader(response.GetResponseStream())
                Return reader.ReadToEnd
            End Using
        End Using
    Catch ex As Exception
        'TODO handle the error here....
        Return ""
    End Try
End Function

用法:

Dim xml As String = Networking.GetWebPageData(New Uri("http://www.hitta.se/077-570%2005%2000/f%C3%B6retag_och_personer"))
Debug.WriteLine(xml)

【讨论】:

  • 这可能是一个很好的答案。搜索引擎的网址是 (hitta.se),它有一个搜索按钮。您可以在搜索框中测试这个号码“070-421 30 10”并点击按钮。在这种情况下,我的网络请求网址是什么?如您所见,结果 url 包含此人的姓名。在这种情况下是hitta.se/julius+hjort/stockholm/person/…
  • 我想您将不得不尝试使用 URL 的格式。但是如上所述,如果搜索引擎更改其格式,它会突然中断
  • 然后是这样的:www.hitta.se/person/hMWZ5UUGqb?vad=070-421+30+10&var=
  • 好吧,我本来打算发布一个答案,但它已经关闭了,所以在这里它被压缩成一个评论: Dim query As String = System.Web.HttpUtility.UrlEncode("070-421 30 10 ") Dim url As String = String.Format("hitta.se/resultat-no-js/?vad-hidden=&vad={0}&var=&var-hidden=", query) Dim source As String = New Net.WebClient().DownloadString(url)
  • 因为我必须把它放在评论中,所以 http 部分在 string.format 之后从 url 中被剥离,所以请确保在那里使用完整的 url。将来,请尝试查看页面的源代码。表单操作显示 url,post 方法是 GET,因此只需将表单字段名称按顺序附加到 url,并格式化查询,在我的情况下使用 urlencode
猜你喜欢
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 2012-04-10
  • 2013-07-12
  • 2020-09-12
相关资源
最近更新 更多