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)

需要使用的依赖:

相关推荐
ZHOU_WUYI3 分钟前
Flask与Celery 项目应用(shared_task使用)
后端·python·flask
黑客老李12 分钟前
JavaSec | SpringAOP 链学习分析
java·运维·服务器·开发语言·学习·apache·memcached
开开心心就好20 分钟前
高效Excel合并拆分软件
开发语言·javascript·c#·ocr·排序算法·excel·最小二乘法
且慢.58922 分钟前
Python_day47
python·深度学习·计算机视觉
特立独行的猫a26 分钟前
Nuxt.js 中的路由配置详解
开发语言·前端·javascript·路由·nuxt·nuxtjs
佩奇的技术笔记29 分钟前
Python入门手册:异常处理
python
勤奋的知更鸟38 分钟前
Java编程之原型模式
java·开发语言·原型模式
大写-凌祁38 分钟前
论文阅读:HySCDG生成式数据处理流程
论文阅读·人工智能·笔记·python·机器学习
珂朵莉MM1 小时前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
爱喝喜茶爱吃烤冷面的小黑黑1 小时前
小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
python·langchain·代理模式