浏览器抓取网页(示例2.右击word参数就是)
优采云 发布时间: 2021-11-20 04:15浏览器抓取网页(示例2.右击word参数就是)
1.先打开要爬取的网页,这里我觉得是个例子
2.在网页的属性上右击,直接点击check或者F12进入调试,效果如下
3.然后在搜索框中输入教父
搜索后,我们可以看到数据发生了变化。我们打开上图中Name栏中红线标注的部分。请求 URL 就是我们需要的 API。此 API 用于搜索歌曲。我们可以分析 URL 中的参数。知道它的参数。这个API返回的是json数据类型,word参数就是我们刚才查询的关键字。只是将你刚才搜索到的内容转换成URL编码格式而已。所以我们在调用这个API的时候,需要把关键字转换成URl代码,然后传入。
3.测试API
这里做一个简单的测试,代码如下
package weather;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class SearcheWeather {
public static void main(String[] args) {
StringBuffer buffer=new StringBuffer();
try {
Scanner input=new Scanner(System.in);
System.out.print("请输入要查询的音乐:");
String iput=input.next();
//转换为url编码
String urlStr = URLEncoder.encode(iput, "utf-8");
System.out.println(urlStr);
//1.建立url
URL url=new URL("http://sug.qianqian.com/info/suggestion?format=json&word="+urlStr+"&version=2&from=0&callback=window.baidu.sug&third_type=0&client_type=0&_=1539749310840");
//2.打开http连接
HttpURLConnection httpUrlConn=(HttpURLConnection)url.openConnection();
httpUrlConn.setDoInput(true);
httpUrlConn.setRequestMethod("GET");
httpUrlConn.connect();
//获得输入
InputStream inputStream=httpUrlConn.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream,"utf-8");
BufferedReader bufferReader=new BufferedReader(inputStreamReader);
//将bufferReader放入到Buff里面
String str=null;
while ((str=bufferReader.readLine())!=null) {
buffer.append(str);
}
bufferReader.close();
inputStreamReader.close();
inputStream.close();
inputStream=null;
//断开连接
httpUrlConn.disconnect();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(buffer.toString());
}
}
运行结果如下:
在 web 应用中,需要将缓冲区转换为 JSON 数据类型。
不同的API参数类型也不同,需要观察数据的变化进行分析,仅供参考。
---------结束