咸鱼上面商品繁多让人眼花缭乱,如果遇到自己喜欢的商品如何筛选出来价格便宜又实惠的东西,如果不看上半天筛选估计很难找到,带着这样的问题,老板让我写个咸鱼采集的程序,然后需要什么类型商品直接让程序自动筛选出来让我们自己选择对比,不说了,打算利用三两个小时完成项目,剩余的就看看电视,摸一天鱼。
我这里是一个用Java编写的闲鱼爬虫程序。我们首先需要创建一个HttpURLConnection对象,然后通过这个对象向闲鱼网站发送一个GET请求,并获取返回的网页内容。然后,我们可以使用Jsoup库解析返回的网页内容,提取出我们感兴趣的信息。最后,我们将提取到的信息保存到本地文件中。
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class QianyuCrawler {
// 提取免费IP jshk.com.cn/mb/reg.asp?kefu=xjy&51cto
public static void main(String[] args) {
String proxy_host = "duoip";
int proxy_port = 8000;
try {
URL url = new URL("xianyu");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
connection.setRequestProperty("Proxy-Host", proxy_host);
connection.setRequestProperty("Proxy-Port", "" + proxy_port);
connection.setRequestProperty("Proxy-Authorization", "Basic " + encodeBasicProxyAuth());
int responseCode = connection.getResponseCode();
System.out.println("Response Code : " + responseCode);
if(responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
Document doc = Jsoup.parse(response.toString());
Elements elements = doc.select("div.content");
for (Element element : elements) {
System.out.println(element.text());
}
doc.select("div.content").save("qianyu.html");
}
else {
System.out.println("Failed to connect to server");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static String encodeBasicProxyAuth() {
String proxyAuth = "username:password";
String proxyAuthEnc = proxyAuth.replace(":", "").replaceAll("\\s", "").getBytes("UTF-8");
return Base64.encodeToString(proxyAuthEnc, Base64.DEFAULT);
}
}
首先,我们创建了一个URL对象,其中的字符串是闲鱼网站的地址。然后,我们使用这个URL对象创建了一个HttpURLConnection对象,用于向闲鱼网站发送请求。 接着,我们设置了HttpURLConnection对象的一些属性,包括请求方法(GET)、连接超时和读取超时、User-Agent头信息(用于模拟浏览器)、代理主机和端口、以及代理认证信息(如果需要的话)。 然后,我们发送一个GET请求,并获取返回的网页内容。 最后,我们使用Jsoup库解析返回的网页内容,并提取出我们感兴趣的信息。然后,我们将提取到的信息保存到本地文件中。
其实说实在的,爬虫也不难,了解一些库的使用以及语法,在通过套用模版,写一段其实挺简单的,只花了两小时就完成工作,下面的时间就由我自己自有分配,摸摸鱼,这一天也就过来了。
标签:Java,String,闲鱼,模版,URL,connection,import,HttpURLConnection From: https://blog.51cto.com/u_13488918/9079064