基于bs4+requests爬取世界赛艇男运动员信息(进阶篇)

简介: bs4中文叫做美丽汤第4版,是用Python写的一个HTML/XML的解析器。中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.htmlrequests中文叫做请求,是用来发起http请求和接收http相应的库。

bs4中文叫做美丽汤第4版,是用Python写的一个HTML/XML的解析器。中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
requests中文叫做请求,是用来发起http请求和接收http相应的库。官方文档链接:
http://docs.python-requests.org/zh_CN/latest/api.html
在详情页面,部分页面具有5个字段信息,部分页面具有2个字段信息。
每个字段信息都在li标签中,对每个li标签做循环遍历。
将li标签中的第1个class等于dt的div标签作为字典的键,将li标签中的第1个class等于dd的div标签作为字典的值。
将数据收集结果item_list数据持久化为excel时,对变量item_list进行循环遍历,excel表格的字段名要赋值为最多键值对的字典的所有键。

from bs4 import BeautifulSoup as bs
import requests

response = requests.get('http://www.worldrowing.com/events/2018-world-rowing-under-23-championships/u23-mens-eight/')
soup = bs(response.text, 'html.parser')
athlete_list = soup.select('tr.resultsDetails li')
item_list = []
for athlete in athlete_list:
    item = {}
    item['name'] = athlete.select('h4 a')[0].text
    item['position'] = athlete.select('p.yPadding')[0].text.strip()
    item['img_url'] = 'http://www.worldrowing.com' + athlete.select('img')[0]['src']
    detail_url = 'http://www.worldrowing.com' + athlete.select('h4 a')[0]['href']
    response = requests.get(detail_url)
    soup = bs(response.text, 'html.parser')
    li_list = soup.select('div.athleteInfoBody li')
    for li in li_list:
        key = li.select('div.dt')[0].text
        value = li.select('div.dd')[0].text
        item[key] = value
    item_list.append(item)

longest_keys = item_list[0].keys()
for item in item_list:
    if len(item.keys()) > len(longest_keys):
        longest_keys = item.keys()
        
import pandas as pd
df = pd.DataFrame(item_list, columns=longest_keys)
df.to_excel('athleteRecord3.xlsx')
目录
相关文章
|
6月前
|
数据采集 存储 监控
网站价格监控:动态价格数据的实时抓取案例
本案例展示了如何利用爬虫技术实时抓取京东等电商平台的商品信息、价格及用户评价,通过代理IP、Cookie和User-Agent确保数据稳定采集。关键数据分析包括价格动态监控、评价趋势分析和竞争情报获取,助力商家制定策略。代码从简单请求逐步演进为具备异常处理、数据解析等功能的完整体系,并设计了「技术关系图谱」,直观展示系统模块间的关系,为开发者提供全局视角和技术路径参考。
1021 0
网站价格监控:动态价格数据的实时抓取案例
|
8月前
|
人工智能 数据处理 语音技术
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
Pipecat 是一个开源的 Python 框架,专注于构建语音和多模态对话代理,支持与多种 AI 服务集成,提供实时处理能力,适用于语音助手、企业服务等场景。
453 23
Pipecat实战:5步快速构建语音与AI整合项目,创建你的第一个多模态语音 AI 助手
|
7月前
|
传感器 人工智能 数据可视化
数字孪生高效赋能,打造水利新质生产力
数字孪生水利运用云计算、大数据、AI、实景三维等技术,实现江河水库等水利工程的可视化展示与智能化模拟。通过三维可视化和实时数据映射,平台提供智能感知、分析、预测和预演功能,支持监测预警、调度优化及灾害预防,助力提升水利管理水平,保障水安全。
|
10月前
|
存储 开发者
递归比较的优缺点是什么?
【10月更文挑战第29天】递归比较是一种在处理复杂数据结构时常用的比较方法,尤其适用于对象和数组等引用类型数据的深度比较。
|
人工智能 自然语言处理
详解:天宫ai官方网站_天宫官网ai入口是什么
天宫AI,正如其名,是昆仑万维精心打造的一款大型语言模型,目标直指 OpenAI 的 ChatGPT,立志成为中文 AI 领域的佼佼者! 其官网 tiangong.cn 已经敞开大门,迎接探索者们。
|
安全
【阿里云电脑】老机型玩黑神话,不听显卡嗡嗡转
万众瞩目的《黑神话:悟空》终于发布!作为一款采用虚幻5引擎的佳作,其画质令人惊艳。官方建议配置为i5-8400/Ryzen 5 1600+GTX 1060/RX 580起步,而推荐配置则为i7-9700/Ryzen 5 5500+RTX 2060/RX 5700 XT/Arc A750。虽然兼容性广泛,但仍有玩家因设备问题无法体验。PS5价格飙升至4200+,让人望而却步。此时,云主机成为理想选择:安全、便捷、经济,最低只需1.2元/小时,内置游戏官方镜像,即刻畅玩,同时支持多种用途。
653 2
|
数据采集 数据可视化 数据挖掘
Python爬虫之Pandas数据处理技术详解
Python爬虫之Pandas数据处理技术详解
|
C#
WPF 静态资源(StaticResource)和动态资源(DynamicResource)
WPF 静态资源(StaticResource)和动态资源(DynamicResource)
375 0
|
存储 关系型数据库 MySQL
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
【MySQL】数据库规范化的三大法则 — 一探范式设计原则
|
Python
结构化程序设计方法
结构化程序设计方法是一种软件开发的原则和技巧,旨在创建易于理解、维护和修改的高质量程序。它强调使用清晰的控制结构、模块化设计和数据抽象来减少程序的复杂性,从而提高程序的可靠性和效率。本文将详细介绍结构化程序设计方法的核心概念,并通过一个示例代码来展示其应用。
477 1