python - 如何使用 BeautifulSoup 仅获取维基百科页面上所有表的第一行数据?
问题描述
我正在尝试从此 Wikipedia 页面中抓取数据。
下面是我目前正在使用的代码。
代码:
from bs4 import BeautifulSoup
import urllib.request
def make_soup(url):
thepage = urllib.request.urlopen(url)
soupdata = BeautifulSoup(thepage, "html.parser")
return soupdata
soup = make_soup("https://en.wikipedia.org/wiki/2015_in_hip_hop_music")
albumdatasaved = ""
for record in soup.findAll('tr'):
albumdata = ""
for data in record.findAll('td'):
albumdata = albumdata + "," + data.text
albumdatasaved = albumdatasaved + "\n" + albumdata[1:]
print(albumdatasaved)
我只需要每个表的第一行数据,如下图所示。我怎么能这样做?
解决方案
这是针对您的问题的完整工作代码,使用 API 是更好的方法,但我知道您需要一个快速的解决方案...
from bs4 import BeautifulSoup
import urllib.request
def make_soup(url):
thepage = urllib.request.urlopen(url)
soupdata = BeautifulSoup(thepage, "html.parser")
return soupdata
soup = make_soup("https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains")
albumdatasaved = ""
for record in soup.findAll('tr'):
for data in record.findAll('td'):
if data.text.strip() and data.text[0] == ".":
albumdatasaved += data.text.strip() + "\n"
break
print(albumdatasaved)
推荐阅读
- php - 致命错误:未捕获错误:通过命令提示符运行 php 脚本时调用未定义函数 oci_connect()
- javascript - 在 React with TypeScript 中使用正确的引用模式时,Refs 是空对象 {}
- python - Jquery,Ajax(失败)net::ERR_CONNECTION_REFUSED
- class - Cuda warp非法地址
- amazon-web-services - 使用 HTTP 列出 Amazon S3 存储桶
- angular - 如何在ngx-input-file中获取上传的文件url和名称
- android - 摘要通知触发音效
- c# - 如何在 C# 中将以下代码(foreach 和 if)转换为 linq?
- python - 在 ubuntu 16.04 上安装 opencv 后,我收到错误 no module opencv
- php - 串入数组