基于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')
目录
相关文章
|
数据采集 数据处理 Python
使用Scrapy框架抓取小红书上的#杭州亚运会#相关内容
使用Scrapy框架抓取小红书上的#杭州亚运会#相关内容
|
数据采集 JavaScript 数据安全/隐私保护
「Python」爬虫实战-北京公交线路信息爬取(requests+bs4)
使用requests爬取北京公交线路信息,目标网址为[https://beijing.8684.cn/](https://beijing.8684.cn/)。 爬取的具体信息为公交线路名称、公交的运营范围、运行时间、参考票价、公交所属的公司以及服务热线、公交来回线路的途径站点。
2259 0
|
存储 Python
如何用str.format()批量生成网址【以豆瓣读书为例】
如何用str.format()批量生成网址【以豆瓣读书为例】
94 0
如何用str.format()批量生成网址【以豆瓣读书为例】
|
数据采集 JSON 数据格式
python爬虫post访问案例-有道翻译
python爬虫post访问案例-有道翻译
241 0
python爬虫post访问案例-有道翻译
|
数据采集 前端开发 Python
python爬虫案例 ---- 爬取小说
python爬虫案例 ---- 爬取小说
523 0
|
数据采集 Python
python爬虫时使用Bs4常见的问题
python爬虫爬取网页的时候,可以使用BeautifulSoup语法来进行操作
|
JSON 数据格式 Python
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
|
Web App开发 索引
抓取猫眼电影top100的正则、bs4、pyquery、xpath实现方法
抓取猫眼电影top100的正则、bs4、pyquery、xpath实现方法
1191 0
|
Web App开发 数据采集 程序员
基于bs4+requests爬取世界赛艇男运动员信息
bs4中文叫做美丽汤第4版,是用Python写的一个HTML/XML的解析器。中文文档链接:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html requests中文叫做请求,是用来发起http请求和接收http相应的库。
1166 0
|
Web App开发 JSON 数据格式
Requests库+正则爬取猫眼电影Top100
声明:此篇文章主要是观看静觅教学视频后做的笔记,原教程地址:https://cuiqingcai.com/ 流程框架 1.抓取单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果。
1284 0