java – 没有解析谷歌新闻内容的输出
作者:互联网
对于我的代码,我想获得谷歌新的搜索标题&网址.
它过去有效.但是,我不知道为什么它现在不起作用?
谷歌改变了它的CSS结构还是什么?
谢谢
public static void main(String[] args) throws UnsupportedEncodingException, IOException {
String google = "http://www.google.com/search?q=";
String search = "stackoverflow";
String charset = "UTF-8";
String news="&tbm=nws";
String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; // Change this to your company's name and bot homepage!
Elements links = Jsoup.connect(google + URLEncoder.encode(search , charset) + news).userAgent(userAgent).get().select( ".g>.r>.a");
for (Element link : links) {
String title = link.text();
String url = link.absUrl("href"); // Google returns URLs in format "http://www.google.com/url?q=<url>&sa=U&ei=<someKey>".
url = URLDecoder.decode(url.substring(url.indexOf('=') + 1, url.indexOf('&')), "UTF-8");
if (!url.startsWith("http")) {
continue; // Ads/news/etc.
}
System.out.println("Title: " + title);
System.out.println("URL: " + url);
}
}
解决方法:
如果问题是“我如何让代码再次运行?”
除非他们保存了副本,否则任何人都很难知道旧页面的样子.
我打破了你的选择,这对我有用.
String string = google + URLEncoder.encode(search , charset) + news;
Document document = Jsoup.connect(string).userAgent(userAgent).get();
Elements links = document.select( ".r>a");
当前页面源看起来像
<div class="g">
<table>
<tbody>
<tr>
<td valign="top" style="width:516px"><h3 class="r"><a href="/url?q=https://www.bleepingcomputer.com/news/security/marlboro-ransomware-defeated-in-one-day/&sa=U&ved=0ahUKEwis77iq7cDRAhXI7IMKHUAoDs0QqQIIFCgAMAE&usg=AFQjCNFFx-sJdU814auBfquRYSsct2c8WA">Marlboro Ransomware Defeated in One Day</a></h3>
结果:
标题:万宝路勒索软件在一天内被击败
网址:https://www.bleepingcomputer.com/news/security/marlboro-ransomware-defeated-in-one-day/
标题:Stack Overflow为开发人员提供了新的简历
网址:https://techcrunch.com/2016/10/11/stack-overflow-puts-a-new-spin-on-resumes-for-developers/
编辑 – 时间范围
这些URL参数看起来很糟糕.
添加后缀& tbs = cdr:1,cd_min:5/30 / 2016,cd_max:6/30/2016
但这部分“min:5/30/2016”包含您的最短日期. 2016年5月30日.
min :(一年中的月份)/(一天中的一天)/一年
而“max:6/30/2016”是您的最长日期. 2016年6月30日.
最大:(一年中的一个月)/(一个月中的一天)/年
这是在2016年5月30日至2016年6月30日期间搜索Mindy Kaling的完整网址
https://www.google.com/search?tbm=nws&q=mindy%20kaling&tbs=cdr%3A1%2Ccd_min%3A5%2F30%2F2016%2Ccd_max%3A6%2F30%2F2016
标签:java,parsing,jsoup,google-search,google-search-api 来源: https://codeday.me/bug/20190519/1133912.html