浏览器抓取网页(示例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参数类型也不同,需要观察数据的变化进行分析,仅供参考。

  ---------结束

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线