首页 > 其他分享 >爬虫爬取网站

爬虫爬取网站

时间:2024-04-22 20:26:40浏览次数:19  
标签:product name 网站 price 爬虫 爬取 data id String

1.建数据库product 表和product_data表

CREATE TABLE product (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    url VARCHAR(255) NOT NULL
);

CREATE TABLE product_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT,
    price VARCHAR(255),
    sale INT,
    FOREIGN KEY (product_id) REFERENCES product(id)
);

 

2.插入maven

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.8</version>
    </dependency>

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.14.3</version>
    </dependency>

</dependencies>

 

 

3.新建类WebCrawler 

public class WebCrawler {
    public static void main(String[] args) {
        String url = "https://www.leadongshop.com/products.html";
        try {
            // Connect to MySQL database
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/webcrawler?useSSL=true&requireSSL=true&verifyServerCertificate=false&characterEncoding=UTF-8", "root", "990522");

            // Parse HTML from the URL
            Document doc = Jsoup.connect(url).get();

            // Select product elements
            Elements products = doc.select("div.bodyList > a");
            // Iterate over each product
            for (Element product : products) {
                // Extract product name and URL
                String name = product.select("div.name").text();
                String url1 = product.attr("href");
                String productUrl = "https://www.leadongshop.com" + url1;

                String data = product.select("div.price").text();
                String[] s = data.split(" ");
                String price = s[0];
                String sale1 = s[1];
                int sale = Integer.parseInt(sale1);

                // Insert product into 'product' table
                String insertProductQuery = "INSERT INTO product (name, url) VALUES (?, ?)";
                PreparedStatement insertProductStmt = conn.prepareStatement(insertProductQuery);
                insertProductStmt.setString(1, name);
                insertProductStmt.setString(2, productUrl);
                insertProductStmt.executeUpdate();
                insertProductStmt.close();

                String insertProductQuery1 = "INSERT INTO product_data (price,sale) VALUES (?, ?)";
                PreparedStatement insertProductStmt1 = conn.prepareStatement(insertProductQuery1);
                insertProductStmt1.setString(1, price);
                insertProductStmt1.setInt(2, sale);
                insertProductStmt1.executeUpdate();
                insertProductStmt1.close();
            }

            conn.close();
        } catch (IOException | SQLException e) {
            e.printStackTrace();
        }
  }
}

 

  

4.数据库中查询。通过SQL查询出商品列表并按销量从高到低、价格从高到低排序

SELECT p.name, pd.price, pd.sale
FROM product p
JOIN product_data pd ON p.id = pd.product_id
ORDER BY pd.sale DESC;

 

  

  

标签:product,name,网站,price,爬虫,爬取,data,id,String
From: https://www.cnblogs.com/zjmdeblog/p/18151421

相关文章

  • 这个网站真的太香了!居然可以免费使用AI聊天工具和“智能AI聊天助手”项目源码!
    宝子们,在这个AI爆火的时代,你是否还在因为无法使用ChatGpt而头疼?是否还在寻觅一款国内的好用AI工具呢?好消息!小编花费三个月终于找到了一个可以免费使用AI聊天工具的网站,由于这个网站之前一直在内测阶段,所以就没有给大家分享。刚好,近期这个网站正式上线了。小编今天就来好好跟大......
  • 记录如何用php做一个网站访问计数器的方法
    简介创建一个简单的网站访问计数器涉及到几个步骤,包括创建一个用于存储访问次数的文件或数据库表,以及编写PHP脚本来增加计数和显示当前的访问次数。方法以下是使用文件存储访问次数的基本步骤:创建一个文本文件来存储计数:在网站的根目录下创建一个名为counter.txt的文件,这个文......
  • 怎么样零代码零成本搭建个人网站?
    先申明为了避免有标题党的嫌疑,这里先做申明。标题中说的零代码指的是借助VuePress通过简单配置,帮助我们生成静态网站。零成本指的是借助GitHubPages或者GiteePages部署VuePress生成的静态网站。让互联网上的小伙伴访问到我们的个人网站。这些都不需要我们写一行代码,不需......
  • 在线文字转语音网站,配音,语音合成,语音克隆
    无界智能·语音合成·在线语音合成(aiwjzn.com)【打造声音魅力,让文字活起来】......
  • 某小说网站之内容获取
    importrequestsheaders={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Language':'zh-CN,zh;q=0.9......
  • 让人爱不释手的工具网站合集-搜嗖工具箱
    文心一言https://yiyan.baidu.com/​ChatGpt横空出世的横空出世好像一把钥匙,开启了大模型时代,国内也有不错的产品,比如百度的文心一言,从3.5到4.0看得见的成长,现在的文心一言是我们工作中不可缺少的好帮手!作为一个生成式对话产品可以帮助用户撰写想要的各种文本,百宝箱功能可......
  • 使用代理绕过网站的反爬机制
    最近在尝试收集一些网络指标的数据,所以,我又开始做爬虫了。:)我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如403Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这......
  • ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)
    ASP.NETMVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1) 本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.cs和AccountModels.cs下面是对这两个文件的了解和改造 WebSe......
  • ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(6)
    ASP.NETMVC4.0+EF+LINQ+bui+网站+角色权限管理系统(6) 快过年了,公司事情忙,好几天没有继续写博客,今天开始写账户模块系统登录,账户管理以及登录日志,首先新建登录日志数据表: ViewCode然后更改模型:AccountModels.cs ViewCode创建登录日志模型:M_UsersLoginLogs.cs View......
  • 国内chatGPT中文版网站有哪些?国内人工智能百花齐放!该如何选择?
    人工智能技术在中国的快速发展和普及,使得国内的人工智能产业日益壮大。在这些领域中,自然语言处理技术和聊天机器人已经取得了显著的进展。ChatGPT作为一种基于深度学习的聊天机器人模型,在国内得到了广泛的关注和应用。目前,有几个国产ChatGPT中文版网站备受瞩目。国产chatGPT汇总:......