基于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')
目录
相关文章
|
数据采集 JavaScript 数据安全/隐私保护
「Python」爬虫实战-北京公交线路信息爬取(requests+bs4)
使用requests爬取北京公交线路信息,目标网址为[https://beijing.8684.cn/](https://beijing.8684.cn/)。 爬取的具体信息为公交线路名称、公交的运营范围、运行时间、参考票价、公交所属的公司以及服务热线、公交来回线路的途径站点。
1948 0
|
4月前
|
Python
pythonSpider_urllib获取豆瓣电影top250信息写入excel
pythonSpider_urllib获取豆瓣电影top250信息写入excel
47 0
|
12月前
|
数据库 Python
|
数据采集 Java
java随机姓名 根据网络爬虫爬取百家姓和名字
java随机姓名 根据网络爬虫爬取百家姓和名字
135 0
|
存储 Python
如何用str.format()批量生成网址【以豆瓣读书为例】
如何用str.format()批量生成网址【以豆瓣读书为例】
86 0
如何用str.format()批量生成网址【以豆瓣读书为例】
|
IDE 开发工具 Python
10分钟教你用Python玩转微信之好友性别比例统计分析
10分钟教你用Python玩转微信之好友性别比例统计分析
785 0
10分钟教你用Python玩转微信之好友性别比例统计分析
|
数据采集 JSON 数据格式
python爬虫post访问案例-有道翻译
python爬虫post访问案例-有道翻译
228 0
python爬虫post访问案例-有道翻译
|
数据采集 前端开发 Python
python爬虫案例 ---- 爬取小说
python爬虫案例 ---- 爬取小说
496 0
|
JSON 数据格式 Python
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
|
Web App开发 数据采集 程序员
基于bs4+requests爬取世界赛艇男运动员信息
bs4中文叫做美丽汤第4版,是用Python写的一个HTML/XML的解析器。中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html requests中文叫做请求,是用来发起http请求和接收http相应的库。
1157 0