用Java访问网站搜索框
我需要编写的是一个代码片段,它将转到一个网站,例如 www.google.com,找到放入短语的搜索框并检索结果页面/页面的 HTML 代码。用Java可以实现这个功能吗?
What I need to write is a code snippet that would go to a website e.g. www.google.com find the search box put in the phrase and retrieve HTML code of results page/pages. Is it possible to achieve this in Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
对于 Google,请使用 JSON/Atom 自定义搜索 API。这是访问 Google 搜索的唯一(合法)方式。
For Google, use the JSON/Atom Custom Search API. It is the only (legal) way to access Google search.
是的,使用类似 HttpClient 的东西,尽管还有其他类似的选项。
Yes, use something like HttpClient, although there are other similar options.
最有可能的是,您应该能够将参数传递给 url(发出搜索后查看 google url,有很多参数)或使用 post 请求(如果站点支持它,请检查 API 描述) 。
如果您直接从 Java 读取 URL(例如使用
URL
类),您将按原样获得返回的 HTMl。Most probably you should be able to pass a parameter to the url (have a look at the google url after issuing a search, there are plenty of parameters) or use a post request (if the site supports it, check for an API description).
If you read the URL directly from Java (e.g. using the
URL
class) you'll get the returned HTMl as is.我想到的第一个工具是 Selenium。它主要是一个 Web 测试框架,但可用于自动执行您建议的操作类型的浏览器。
http://seleniumhq.org/docs/03_webdriver.html#getting -启动-with-selenium-webdriver
The first tool I thought of was Selenium. It is primarily a web testing framework, but can be used to automate a browser for the kind of operation you're suggesting.
http://seleniumhq.org/docs/03_webdriver.html#getting-started-with-selenium-webdriver
也可以使用 HttpUnit。它是一个文档齐全、开源且易于使用的单元测试框架。
HttpUnit can also be used. It's a well documented, open source and easy to use unit test framework.