网页抓取空白结果

时间:2021-07-28 12:43:19

标签: python pandas web-scraping beautifulsoup

我正在尝试加载数据,但它返回空列表,不确定这里出了什么问题...我正在添加从其他教程中找到的相同脚本

 from bs4 import BeautifulSoup

import requests
import pandas as pd

url = ' https://en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table'

result = requests.get(url)

soup = BeautifulSoup(result.content, 'html.parser')

# print(soup.title)

content = soup.find_all('table', class_='wikitable sortable jquery-tablesorter')

print(content)

2 个答案:

答案 0 :(得分:2)

根据更新后的 URL 回答。

您正在使用 find_all() 选择所有表。在 URL 中,您只需选择奖牌表而不是全部。

您可以使用 content.find('table', class_='wikitable') 选择奖牌表。

这里我从表中提取了所有 <tr> 并将它们存储在 trs 变量中。您可以遍历 trs 列表并提取您需要的数据。

from bs4 import BeautifulSoup

import requests
import pandas as pd

url = 'https://en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table'

result = requests.get(url)

soup = BeautifulSoup(result.text, 'html.parser')

content = soup.find('table', class_='wikitable')
trs = content.findAll('tr')

答案 1 :(得分:1)

print(soup) 显示 url 已成功抓取。错误在 content = ... 行 - 给定的 url 不包含 table。这是 print(soup) 输出:

<块引用>

{"type":"standard","title":"夏季奥运会","displaytitle":"夏季奥运会","namespace":{"id":0,"text":""} ,"wikibase_item":"Q159821","titles":{"canonical":"Summer_Olympic_Games","normalized":"夏季奥运会","display":"夏季奥运会"},"pageid":27566,"缩略图":{"source":"https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Olympic_rings_without_rims.svg/320px-Olympic_rings_without_rims.svg.png","width":320,"height ":148},"originalimage":{"source":"https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Olympic_rings_without_rims.svg/342px-Olympic_rings_without_rims.svg.png","width ":342,"height":158},"lang":"en","dir":"ltr","re​​vision":"1035750198","tid":"667065b0-eedc-11eb-83d5-e721135a5a1e" ,"timestamp":"2021-07-27T13:12:59Z","description":"国际综合体育赛事","description_source":"local","content_urls":{"desktop":{"page" :"https://en.wikipedia.org/wiki/Summer_Olympic_Games","re​​visions":"https://en.wikipedia.org/wiki/Summer_Olympic_Games?ac tion=history","edit":"https://en.wikipedia.org/wiki/Summer_Olympic_Games?action=edit","talk":"https://en.wikipedia.org/wiki/Talk:Summer_Olympic_Games" },"mobile":{"page":"https://en.m.wikipedia.org/wiki/Summer_Olympic_Games","re​​visions":"https://en.m.wikipedia.org/wiki/Special: History/Summer_Olympic_Games","edit":"https://en.m.wikipedia.org/wiki/Summer_Olympic_Games?action=edit","talk":"https://en.m.wikipedia.org/wiki/ Talk:Summer_Olympic_Games"}},"extract":"夏季奥运会,也称为奥林匹克运动会,是一项重大的国际性综合体育赛事,通常每四年举办一次。奥运会于 1896 年首次在希腊雅典举行,目前将于 2021 年在日本东京举行。国际奥委会(IOC)负责组织奥运会并监督主办城市的筹备工作。在每届奥运会项目中,第一名颁发金牌,第二名颁发银牌,第三名颁发铜牌;这一传统始于 1904 年。冬季奥运会是在夏季奥运会的成功基础上创立的。","extract_html":"

夏季奥运会,也称为奥林匹克运动会,是一项重大的国际多项体育赛事,通常每四年举行一次。奥运会于 1896 年首次在希腊雅典举行,目前将于 2021 年在日本东京举行。国际奥委会(IOC)负责组织奥运会并监督主办城市的筹备工作。在每届奥运会项目中,第一名颁发金牌,第二名颁发银牌,第三名颁发铜牌;这一传统始于 1904 年。冬奥会的诞生源于夏季奥运会的成功。

"}