Python小试牛刀:第一次爬虫,获取国家编码名称

news/2024/11/13 22:26:53/

 使用场景:

需要初始化国家(地区表),字段有国家名称、国家编码等等。

解决方案:

使用requests发送请求,使用bs4解析得到的HTML,打开F12,查看元素,(可以Ctrl+S直接保存HTML使用VS code 打开更加清晰)找到数据所在标签,再根据标签获取内容。获取需要的数据,再存储到数组,最后使用pandas将数据转成DataFrame,调用to_excel方法导出。

python">import requests
from bs4 import BeautifulSoup
import pandas as pd# 目标网页URL
url = 'https://www.guojiadaima.com/'# 发送HTTP请求获取网页内容
response = requests.get(url)
response.encoding = 'utf-8'  # 根据网页的编码调整# 使用BeautifulSoup解析HTML
soup = BeautifulSoup(response.text, 'html.parser')# 找到数据所在的标签
tbodyData = soup.find('tbody')# 初始化数据列表
data = []# 提取表格中的数据
for row in tbodyData.find_all('tr')[1:]:  # 跳过表头columns = row.find_all('td')if len(columns) > 1:if columns[3].text.strip() != '':country_name = columns[3].text.strip()  # 中文简称english_name = columns[4].text.strip()  # 英文简称iso2_code = columns[5].text.strip()  # ISO 2iso3_code = columns[6].text.strip()  # ISO 3numerical_code = columns[7].text.strip()  # 数字代码ip_code = columns[9].text.strip()  # 数字代码data.append({'国家名称': country_name,'英文名称': english_name,'国家编码2': iso2_code,'国家编码3': iso3_code,'数字代码': numerical_code,'域名后缀': ip_code})# 打印提取的数据
for item in data:print(item)# 将数据转换为DataFrame
df = pd.DataFrame(data)
print(df)# 导出到Excel文件
# index=False表示不导出DataFrame的索引
df.to_excel('countries_codes.xlsx', index=False)# 指定输出的Excel文件的完整路径
# 假设你想要将文件保存在C盘的某个文件夹中
output_path = 'C:/Users/YourUsername/Documents/output.xlsx'
# 或者在Linux/macOS系统中使用正斜杠(/)或双反斜杠(\\)作为路径分隔符
# output_path = '/home/yourusername/Documents/output.xlsx'
# 或者
# output_path = 'C:\\Users\\YourUsername\\Documents\\output.xlsx'
df.to_excel(output_path, index=False)

需要使用的依赖:


http://www.ppmy.cn/news/1546341.html

相关文章

【智谱开放平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

【go从零单排】Stateful Goroutines(有状态的 goroutines)

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 中,有状态的 goroutines(Stateful Goroutines&…

【开源免费】基于SpringBoot+Vue.JS课程答疑系统(JAVA毕业设计)

博主说明:本文项目编号 T 070 ,文末自助获取源码 \color{red}{T070,文末自助获取源码} T070,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…

如何在vscode中安装git详细新手教程

一、安装git后点击vscode中的设置 今天教大家如何在VScode中编写代码后提交到git仓库,如果我们不想切换到git的命令行窗口,可以在VScode中配置git,然后就可以很方便快捷的把代码提交到仓库中。 二、在输入框中输入 git.path ,再点…

ESLint 使用教程(三):12个ESLint 配置项功能与使用方式详解

前言 在现代前端开发中,代码质量与一致性是至关重要的,ESLint 正是为此而生的一款强大工具,本文将带您详细了解 ESLint 的配置文件,并通过通俗易懂的方式讲解其主要配置项及其配置方法。此外,我们还将探讨一些高级配置…

京东商品详情,Python爬虫的“闪电战”

在这个数字化的时代,我们每天都在和数据打交道,尤其是电商数据。想象一下,你是一名侦探,需要快速获取京东上某个商品的详细信息,但是没有超能力,怎么办?别担心,Python爬虫来帮忙&…

Java:使用Jackson的jsonPtrExp获取节点值的问题说明

使用Jackson时解析json时,经常会使用jsonPath直接获取某一节点下的值,这种方式非常直观 ,例如: { “data”: { "test1": "value1", "test2": null, "test3": 10 } } 以Jackson2.13.5&…

java的JJWT 0.91在jdk21中报错的解决方法

参考了很多其他人的办法,只有这种方式可以解决问题 JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西 如果根据黑马的视频,导入了阿里云OSS的相关依赖,自然不会…