数据资源整理【二】:爬虫获取329万多条姓名数据并保存为sqlite3、Excel、csv文件【文末下载链接】

本文主要是介绍数据资源整理【二】:爬虫获取329万多条姓名数据并保存为sqlite3、Excel、csv文件【文末下载链接】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 数据说明
  • 数据来源
  • 源码讲解
  • 下载地址

数据说明

在这里插入图片描述

数据来源

公开网站《姓名大全》获取,数据和源码仅供学习交流使用

源码讲解

主要分为三部分:

  • get_name_link获取所有百家姓地址
  • get_data获取百家姓地址中的所有姓名
  • create_db创建数据库,保存数据
import time
import random
import requests
import sqlite3
from bs4 import BeautifulSoupdef get_name_link():# 解析百家姓列表,获取姓名对应的地址url = "http://www.resgain.net/xmdq.html"res = requests.get(url)soup = BeautifulSoup(res.text, 'lxml')name_links = []for s in soup.find_all(attrs={'class': 'btn btn2'}):name_link_dict = {"name": s.text,"link": "https://www.resgain.net/" + s.get('href')}name_links.append(name_link_dict)return name_linksdef get_data(first_name, url):# 连接数据库con = sqlite3.connect(r'tools_app.db')cursor = con.cursor()# 获取数据,并解析数据res = requests.get(url)soup = BeautifulSoup(res.text, 'lxml')if "gender=1" in url:sex_ = "男"else:sex_ = "女"for s in soup.find_all(attrs={'class': 'cname'}):name = s.text# print(s.text)sql = "insert into names (first_name,name,sex) values('{0}','{1}','{2}');".format(first_name, name, sex_)cursor.execute(sql)con.commit()print(url, "完成")con.close()def create_db():# 创建 sqlite3 数据库conn = sqlite3.connect(r"tools_app.db")cursor = conn.cursor()cursor.execute('''CREATE TABLE if not exists names(id INTEGER PRIMARY KEY  AUTOINCREMENT,first_name           TEXT    NOT NULL,name           TEXT    NOT NULL,sex         TEXT    NOT NULL);''')print("names database created successfully")conn.commit()conn.close()if __name__ == '__main__':# 创建数据库和RANDOM_NAME表create_db()# 获取百家姓连接地址name_link_list = get_name_link()# print(name_link_list)for name_link in name_link_list[70:]:# 拼接男生和女生的地址link = name_link.get("link")first_name = name_link.get("name")url_boys = link + "&gender=1&wx1=&wx2="url_girls = link + "&gender=0&wx1=&wx2="# 获取数据,并保存到 tools_app.db 中get_data(first_name, url_boys)# 每次获取完成后,随机暂停几秒t = random.randint(1, 3)time.sleep(t)get_data(first_name, url_girls)t = random.randint(1, 3)time.sleep(t)print(first_name,"完成!")# break

下载地址

链接:https://pan.baidu.com/s/17ddiWLEZdz8XFa5XsWQz1w?pwd=o8i5

这篇关于数据资源整理【二】:爬虫获取329万多条姓名数据并保存为sqlite3、Excel、csv文件【文末下载链接】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/306404

相关文章

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结

Redis中的数据一致性问题以及解决方案

《Redis中的数据一致性问题以及解决方案》:本文主要介绍Redis中的数据一致性问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Redis 数据一致性问题的产生1. 单节点环境的一致性问题2. 网络分区和宕机3. 并发写入导致的脏数据4. 持

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息