简单爬取信息

  • User 实体类,包含如下属性

    • private Long id; // 用户id 名
    • private String name; //用户姓名
    • private String gender; //性别
    • private LocalDate birthday; //生日
    • 注意需要提供 set和get方法,以及toString方法
  • 新建测试类,类中 main 方法,在方法中完成如下业务逻辑:

    • 业务一:

      • 有如下字符串,里面包含多个用户信息数据,现在需要你解析这个字符串,获取里面的用户数据,并封装到User对象中
      • 多个User对象在添加到List 集合中
        String userStrs = "10001:张三::1990-01-01#10002:李四::1989-01-09#10003:王五::1999-09-09#10004:
        刘备::1899-01-01#10005:孙悟空::1900-01-01#10006:张三::1999-01-01#10007:刘备::1999-01-01#10008:
        张三::2003-07-01#10009:猪八戒::1900-01-01";
        
      • 注意:
        • 字符串中的规则如下,多个用户用 # 拼接,用户的信息之间用 : 拼接。
        • 其中用户id和生日是需要进行类型转换的,其中id需要将String转成Long,生日需要将String转成LocalDate
    • 业务二:

      • 遍历上面获取的List 集合,统计里面每个名字出现的次数。
      • 封装到Map<String,Integer>集合中,集合的key就是名字,value就是名字出现的次数。
      • 最后遍历打印map数据,打印内容如下:
        • 张三:3次
        • 李四:5次
public class Test {
    public static void main(String[] args) {
        //1、将数据拿进来
        String userStrs = "10001:张三:男:1990-01-01#10002:李四:女:1989-01-09#10003:王五:男:1999-09-09#10004:" +
                "刘备:男:1899-01-01#10005:孙悟空:男:1900-01-01#10006:张三:女:1999-01-01#10007:刘备:女:1999-01-01#10008:" +
                "张三:女:2003-07-01#10009:猪八戒:男:1900-01-01";

        //2、将数据进行分割,得到分割后的数据
        String[] userData = userStrs.split("#");
        System.out.println(Arrays.toString(userData));

        //6、创建一个对象集合用于存储对象
        List<User> users = new ArrayList<>();

        //3、遍历数组中的内容得到每一条对象信息
        for (String userDatum : userData) {
            //4、对每一条信息再进行分割,得到每个用户的信息数组
            String[] strings = userDatum.split(":");
            //5、创建用户对象,将用户信息数组中的内容存储进对象中
            User user = new User();
            user.setId(Long.valueOf(strings[0]));
            user.setName(strings[1]);
            user.setGender(strings[2]);
            user.setBirthday(LocalDate.parse(strings[3]));
            //7、将用户加入到用户集合中去
            users.add(user);
        }
        System.out.println(users);

        //9、创建一个map集合,用于统计用户名字和其出现的次数
        Map<String,Integer> result = new HashMap<>();

        //8、遍历用户集合,统计集合中姓名出现的次数
        for (User user : users) {
            String name = user.getName();
            if(result.containsKey(name)){
                //如果集合中有这个名字,就值加1
                result.put(name,result.get(name)+1);
            }else{
                //如果集合里没有这个名字就将其加进去
                result.put(name,1);
            }
        }

        result.forEach((k,v) ->{
            System.out.println(k + ": " + v);
        });
    }
}

本题考验的都是一些基础的内容!

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Python简单爬取航班信息,你可以使用Python的第三方库BeautifulSoup和requests来实现。首先,你需要安装这两个库。你可以使用pip命令来安装它们: ``` pip install beautifulsoup4 pip install requests ``` 接下来,你可以使用requests库发送HTTP请求来获取航班信息网页的HTML内容。例如,你可以发送一个GET请求到特定的航班信息网站,然后获取响应的HTML内容: ```python import requests # 发送GET请求获取航班信息网页的HTML内容 response = requests.get("https://example.com/flight_information") # 获取HTML内容 html_content = response.text ``` 然后,你可以使用BeautifulSoup库来解析HTML内容,从提取你想要的航班信息。你可以使用BeautifulSoup的find或find_all方法来查找特定的HTML元素。例如,如果航班信息是包含在<table>标签的<tr>标签的<td>标签,你可以使用以下代码来提取航班信息: ```python from bs4 import BeautifulSoup # 创建BeautifulSoup对象 soup = BeautifulSoup(html_content, "html.parser") # 查找包含航班信息的<table>标签 flight_table = soup.find("table") # 遍历<table>标签的每个<tr>标签 for row in flight_table.find_all("tr"): # 查找<tr>标签的每个<td>标签 columns = row.find_all("td") # 提取航班信息 flight_number = columns<span class="em">1</span> #### 引用[.reference_title] - *1* [svm支持向量机python代码](https://download.csdn.net/download/weixin_45725404/88247840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值