基于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/)。 爬取的具体信息为公交线路名称、公交的运营范围、运行时间、参考票价、公交所属的公司以及服务热线、公交来回线路的途径站点。
1652 0
|
9月前
|
数据采集 Java
java随机姓名 根据网络爬虫爬取百家姓和名字
java随机姓名 根据网络爬虫爬取百家姓和名字
92 0
|
存储 Python
如何用str.format()批量生成网址【以豆瓣读书为例】
如何用str.format()批量生成网址【以豆瓣读书为例】
70 0
如何用str.format()批量生成网址【以豆瓣读书为例】
|
数据采集 前端开发 Python
python爬虫案例 ---- 爬取小说
python爬虫案例 ---- 爬取小说
425 0
|
JSON 数据格式 Python
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
|
存储 算法 NoSQL
No.1 - Apache IoTDB 随笔 - Time Series DBMS 综述(文末彩蛋)
“这是一篇无法一口气读完的、文字过万[正文字数14390]的长文,这是一个无法中途不上厕所就看完的、关于时序数据库的视频[时长111分钟]分享...” [观看视频](https://mp.weixin.qq.com/s/YgnSSahp70iV_X12aYEtPg) 大家好,很开心能够和大家一起交流时序数据库的相关的内容:) **【文末有彩蛋】** ![image.png](https
1384 0
No.1 - Apache IoTDB 随笔 - Time Series DBMS 综述(文末彩蛋)
|
Web App开发 索引
抓取猫眼电影top100的正则、bs4、pyquery、xpath实现方法
抓取猫眼电影top100的正则、bs4、pyquery、xpath实现方法
1168 0
|
Web App开发 数据采集 程序员
基于bs4+requests爬取世界赛艇男运动员信息
bs4中文叫做美丽汤第4版,是用Python写的一个HTML/XML的解析器。中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html requests中文叫做请求,是用来发起http请求和接收http相应的库。
1138 0
|
Web App开发 Python Windows
python爬取猫眼电影 top 100 保存到CSV
代码没含量,希望帮到入门的小白。 import requests import re,json from lxml import etree import csv class Spider(): def open_csv(self): ...
1751 0
|
Web App开发 JSON 数据格式
Requests库+正则爬取猫眼电影Top100
声明:此篇文章主要是观看静觅教学视频后做的笔记,原教程地址:https://cuiqingcai.com/ 流程框架 1.抓取单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果。
1260 0