首页 > 编程语言 >老板要Java做闲鱼采集 套用模版又摸一天鱼

老板要Java做闲鱼采集 套用模版又摸一天鱼

时间:2024-01-03 10:32:53浏览次数:44  
标签:Java String 闲鱼 模版 URL connection import HttpURLConnection

咸鱼上面商品繁多让人眼花缭乱,如果遇到自己喜欢的商品如何筛选出来价格便宜又实惠的东西,如果不看上半天筛选估计很难找到,带着这样的问题,老板让我写个咸鱼采集的程序,然后需要什么类型商品直接让程序自动筛选出来让我们自己选择对比,不说了,打算利用三两个小时完成项目,剩余的就看看电视,摸一天鱼。

老板要Java做闲鱼采集 套用模版又摸一天鱼_System

我这里是一个用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

相关文章

  • 面向Java应用网络流的非侵入可观测指标采集联合方案 – Sermant & Gopher
    作者:杨奕华为云技术规划专家|殷森道华为云高级软件工程师|张豪鹏华为云高级软件工程师摘要随着2022年来eBPF的技术大火,该技术以其非侵入的优点在可观测领域开始大放异彩。我们基于eBPF技术也做了许多实践,总的来看,eBPF在网络运维的四层网络客观性方面具备得天独厚的优势,然而......
  • 基于JAVA的网上药品系统
    现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本网上药品售卖系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功......
  • 如何利用Kotlin实现闲鱼采集
    利用Kotlin实现网络数据采集(例如闲鱼的数据采集)需要您使用网络请求库和HTML解析库。下面是一个基本的示例,使用Kotlin中的Ktor库进行网络请求和解析HTML页面内容。importio.ktor.client.*importio.ktor.client.engine.okhttp.*importorg.jsoup.Jsoupsuspendfunfe......
  • 无涯教程-Java 正则 - X?? 匹配函数
    ReluctantQuantifier[X??]匹配存在一次或根本不存在的X。X??-示例以下示例显示了用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassReluctantQuantifierDemo{privatestaticfinalStringREGEX="T?......
  • Java之File类的详细解析及小练习
     2.File类2.1概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。2.2构造方法publicFile(Stringpathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。publicFile(Stringparent,Stringchild):从父路径名......
  • Java之File类的详细解析及小练习
     2.File类2.1概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。2.2构造方法publicFile(Stringpathname):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。publicFile(Stringparent,Stringchild):从父路径名......
  • 无涯教程-Java 正则 - X{n,}匹配函数
    贪婪量词[X{n,}]与存在的X匹配至少n次。X{n,}-示例以下示例显示了贪婪量词的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGreedyQuantifierDemo{privatestaticfinalStringREGEX="T{2,}";pr......
  • 无涯教程-Java 正则 - X{n}匹配函数
    贪婪匹配[X{n}]与存在的X个精确匹配n次。X{n}-示例以下示例显示了贪婪匹配的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGreedyQuantifierDemo{privatestaticfinalStringREGEX="T{2}";pr......
  • 无涯教程-Java 正则 - X+匹配函数
    贪婪匹配[X+]与出现的X匹配一次或多次。X+-示例以下示例显示了贪婪匹配的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGreedyQuantifierDemo{privatestaticfinalStringREGEX="T+";private......
  • 无涯教程-Java 正则 - X*匹配函数
    贪婪匹配[X*]与出现的X匹配零次或多次。X*-示例以下示例显示了贪婪匹配的用法。packagecom.learnfk;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGreedyQuantifierDemo{privatestaticfinalStringREGEX="T*";private......