python - 我将如何使用美丽的汤从这个网站上抓取数据?
问题描述
[![问题][1]][1]
上面是 HTML、网站的样子和我的代码。我正在尝试将此信息提取到字典中。例如 {"Official Symbol: ELF4"} 等等。我已经看过一些教程,但我仍然感到困惑。谁能帮我吗?
import requests
from bs4 import BeautifulSoup
url = "https://www.ncbi.nlm.nih.gov/gene/2000"
r = requests.get(url)
data = r.content
soup = BeautifulSoup(data, 'html.parser')
#text_found = soup.find("dd",attrs={"class":"noline"}).text
dd_data = soup.find_all("dd")
for dditem in dd_data:
if dditem != "None":
print(dditem.string)
da_data = soup.find_all("dt")
for daitem in da_data:
if daitem != "None":
print(daitem.string)
解决方案
要抓取数据,dict
请参阅以下示例:
import requests
from bs4 import BeautifulSoup
URL = "https://www.ncbi.nlm.nih.gov/gene/2000"
soup = BeautifulSoup(requests.get(URL).content, "html.parser")
result = {
k.text.replace(" ", "").replace("\n", " "): v.find_next(text=True)
for k in soup.select("dt.noline")
for v in soup.select("dd.noline")
}
print(result)
输出:
{'Official Symbol': 'ELF4'}
推荐阅读
- javascript - json.parse() 位置 141 处 JSON 中的 Vanilla JS 意外令牌 A
- android - 尝试从 android 的内部存储中读取 excel 文件 (.xlsx) 时出现 FileNotFound 异常
- c++ - 在调用 std::condition_variable::wait() 之前多次调用 std::condition_variable::notify_one()
- java - 使用 Glide 将图像添加到工具栏
- sql - 将多个 self JOIN 转换为窗口函数或子查询 (SQL)
- python - 使用 Python 的 LazyLoader 导入类导入顶级模块
- javascript - 用 jQuery 替换外部 CSS 中的自定义属性
- django - 从 Django 模板中的嵌套列表生成表
- php - 此集合实例上不存在属性 [lesson_id] - 即使我使用的是 foreach,因此仅检索 1 个模型
- node.js - newman: 找不到“htmlextra”reporter 确保reporter 安装在与newman 相同的目录中 请使用npm 安装reporter