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

使用场景:

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

解决方案:

使用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 2
            iso3_code = columns[6].text.strip()  # ISO 3
            numerical_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)

需要使用的依赖:

相关推荐
吴佳浩1 小时前
Python入门指南(六) - 搭建你的第一个YOLO检测API
人工智能·后端·python
长安第一美人2 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan2 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
superman超哥2 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
不爱吃糖的程序媛2 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo2 小时前
MATLAB奔溃记录
开发语言·matlab
Learner__Q3 小时前
每天五分钟:滑动窗口-LeetCode高频题解析_day3
python·算法·leetcode
————A3 小时前
强化学习----->轨迹、回报、折扣因子和回合
人工智能·python
你的冰西瓜3 小时前
C++标准模板库(STL)全面解析
开发语言·c++·stl
徐先生 @_@|||3 小时前
(Wheel 格式) Python 的标准分发格式的生成规则规范
开发语言·python