Healthline.com 是顶级健康和保健网站之一,提供详细的文章、提示和专家见解。从文章列表到深入指南,它包含许多用例的内容。无论您是在研究、建立健康数据库还是分析健康趋势,从 Healthline 抓取数据都非常有用。

但抓取 healthline.com 这样的动态网站并不容易。该网站使用 JavaScript 来呈现其页面,因此传统的网页抓取方法不起作用。这就是 Crawlbase Crawling API 用武之地。 Crawlbase 无缝处理 JavaScript 渲染的内容,使整个抓取过程变得简单。

在这篇博客中,我们将介绍为什么你可能想要抓取 Healthline.com,目标的关键数据点,以及如何使用 Crawlbase Crawling API 使用 Python 以及如何将抓取的数据存储在 CSV 文件中。让我们开始吧!

目录

  1. 为什么要抓取Healthline.com?
  2. 从 Healthline.com 中提取的关键数据点
  3. Crawlbase Crawling API 用于 Healthline.com 抓取
  • 为何使用 Crawlbase Crawling API
  • Crawlbase Python库
  1. 设置 Python 环境
  • 安装 Python 和所需的库
  • 选择 IDE
  1. 抓取 Healthline.com 文章列表
  • 检查 HTML 结构
  • 编写 Healthline.com 列表抓取工具
  • 将数据存储在 CSV 文件中
  • 完整的代码
  1. 抓取 Healthline.com 文章页面
  • 检查 HTML 结构
  • 编写Healthline.com文章页面
  • 将数据存储在 CSV 文件中
  • 完整的代码
  1. 总结
  2. 常见问题 (FAQ)

为什么要抓取Healthline.com?

Healthline.com 是一个值得信赖的健康、保健和医疗信息网站,每月有数百万访问者。他们的内容经过充分研究,用户友好,涵盖从营养和健身到疾病管理和心理健康等广泛主题。因此,如果您需要收集与健康相关的数据。

以下是你可能抓取 Healthline 的原因:

  • 建立健康数据库:如果您正在构建健康和保健网站,您可以从 Healthline、文章标题、摘要和要点中提取结构化数据。
  • 趋势分析:抓取 Healthline 文章,了解当前趋势、新鲜事以及用户感兴趣的内容。
  • 研究项目:学生、数据分析师和研究人员可以使用 Healthline 数据进行有关健康、健身或医学突破的研究或项目。
  • 内容管理:健康博主或健康应用程序开发者可以从中获得内容灵感或参考。

从 healthline.com 中提取的关键数据点

抓取 healthline.com 时,请关注以下有价值的数据点:

从 Healthline.com 提取的关键数据点图像

收集所有这些信息可以让你全面了解网站的内容,这对于研究或健康项目非常有用。下一节将解释如何 Crawlbase Crawling API 使得抓取这些数据变得容易。

Crawlbase Crawling API 用于 healthline.com 抓取

抓取 healthline.com 需要处理 JavaScript 渲染的内容,这可能比较棘手。 Crawlbase Crawling API 为您处理 JavaScript 渲染、代理和其他技术问题。

为何使用 Crawlbase Crawling API?

- Crawlbase Crawling API 非常适合抓取 healthline.com,因为:

  • 处理 JavaScript 渲染:适用于像 healthline.com 这样的动态网站。
  • 自动代理轮换:通过轮换代理来防止 IP 被阻止。
  • 错误处理:处理 CAPTCHA 和网站限制。
  • 轻松与 Python 集成:轻松 Crawlbase Python库。
  • 免费试堂:提供 1,000 个免费请求,轻松开始。

Crawlbase Python库

Crawlbase 还有一个 Python 库,可以轻松将 API 集成到你的项目中。你需要一个访问令牌,该令牌在 报名。按照此示例向 Crawlbase Crawling API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 爬行基地 进口 抓取API

# 初始化 Crawlbase 使用访问令牌的 API
爬行 API = 爬行 API({'令牌': 'YOUR_CRAWLBASE_TOKEN'})

DEF make_crawlbase_request(网址):
响应=crawling_api.get(url)

if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
回报 html_内容
其他:
打印(f“无法获取页面。 Crawlbase 状态码: {回复[“标题”]['pc_status']}")
回报 没有

重要说明:

  • 使用 JavaScript (JS) 令牌来抓取动态内容。
  • Crawlbase 支持使用专用令牌进行静态和动态内容抓取。
  • 使用 Python 库,您可以抓取和提取数据,而不必担心 JavaScript 渲染或代理。

现在,让我们开始设置您的 Python 环境来抓取 healthline.com。

设置 Python 环境

在开始抓取 healthline.com 之前,您需要设置 Python 环境。此步骤将确保您拥有运行抓取工具所需的所有工具和库。

1.安装Python和所需的库

从以下位置下载并安装 Python Python官方网站。安装 Python 后,您可以使用 Python 的包管理器 pip 来安装库:

1
pip 安装 crawlbase beautifulsoup4 pandas
  • Crawlbase:处理与 Crawlbase Crawling API.
  • 美丽汤:用于解析 HTML 并提取所需数据。
  • 熊猫:帮助构建和存储以 CSV 文件或其他格式抓取的数据。

2. 选择 IDE

集成开发环境 (IDE) 可提高编码效率。热门选项包括:

  • PyCharm:具有调试和项目管理功能的强大工具。
  • Visual Studio代码:轻量级且适合初学者,具有大量扩展。
  • Jupyter笔记本:非常适合以交互方式测试和运行小脚本。

3.创建一个新项目

设置项目文件夹并创建一个 Python 文件,您将在其中编写抓取脚本。例如:

1
2
3
MKDIR healthline_scraper
cd healthline_scraper
触摸 scraper.py

环境准备就绪后,您就可以开始为 healthline.com 构建抓取工具了。在接下来的部分中,我们将逐步介绍如何为列表页面和文章页面编写抓取工具。

抓取 Healthline.com 文章列表

为了从 healthline.com 抓取文章列表,我们将使用 Crawlbase Crawling API 用于动态 JavaScript 渲染。让我们通过专业且易于理解的代码示例逐步分解。

1.检查HTML结构

在编写代码之前,请打开 healthline.com 并导航到文章列表页面。使用浏览器的开发人员工具(通常通过按 F12) 检查 HTML 结构。

文章链接结构示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<DIV =“css-1hm2gwy”>
<DIV>
<a
=“css-17zb9f8”
数据事件=“|全局标题|搜索结果点击”
数据元素事件=“内部链接|部分|任何页面|搜索结果|链接|/health-news/antacids-increase-migraine-risk|”
HREF=“https://www.healthline.com/health-news/antacids-increase-migraine-risk”
>
<跨度 =“ais-突出显示”>
<跨度 =“ais-突出显示-非突出显示”>抗酸药与以下风险增加相关: </跨度>
<em =“ais-突出显示”>偏头痛</em>
<跨度 =“ais-突出显示-非突出显示”>, 严重头痛</跨度>
</跨度>
</a>
</DIV>
<DIV =“css-1evntxy”>
<跨度 =“ais-突出显示”>
<跨度 =“ais-突出显示-非突出显示”
>新的研究表明,服用抗酸药的人可能面临更大的风险
</跨度>
<em =“ais-突出显示”>偏头痛</em>
<跨度 =“ais-突出显示-非突出显示”> 发作和严重头痛。</跨度>
</跨度>
</DIV>
</DIV>

识别以下元素:

  • 文章标题:发现于 a 用类标记 css-17zb9f8.
  • 链接: 在发现 href a 的属性 tag.
  • 描述:发现于 div 类的元素 css-1evntxy.

2. 编写 Healthline.com 列表抓取工具

我们将使用 Crawlbase Crawling API 获取页面内容并使用 BeautifulSoup 进行解析。我们将使用 ajax_waitpage_wait 提供的参数 Crawlbase Crawling API 处理 JS 内容。您可以阅读这些参数 点击这里.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 爬行基地 进口 抓取API
bs4 进口 美丽汤

# 初始化 Crawlbase Crawling API
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_JS_TOKEN'})

选项= {
'ajax_等待': '真的',
'页面等待': '5000'
}

DEF scrape_article_listings(网址):
响应=crawling_api.get(url,选项)

if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

文章 = []
HPMC胶囊 项目 in 汤.find_all('一种', 类_='文章链接'):
文章标题 = 文章.文本.条带()
文章网址 = “https://www.healthline.com” + 项目['href']
文章.附加({'标题':文章标题, '网址': 文章网址})

回报 刊文
其他:
打印(f“无法获取页面: {回复[“标题”]['pc_status']}")
回报 []

# 用法示例
网址= “https://www.healthline.com/articles”
文章列表 = scrape_article_listings(网址)
打印(文章列表)

3.将数据存储在 CSV 文件中

您可以使用 pandas 库将抓取的数据保存到 CSV 文件中,以便于访问。

1
2
3
4
5
6
进口 大熊猫 as pd

DEF 保存到csv(数据、文件名):
df = pd.DataFrame(数据)
df.to_csv(文件名,索引=)
打印(f”数据保存至 {文档名称}")

4. 完整代码

综合所有信息,以下是完整的抓取工具:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 大熊猫 as pd

# 初始化 Crawlbase Crawling API
爬行 API = 爬行 API({'令牌': 'YOUR_CRAWLBASE_TOKEN'})

选项= {
'ajax_等待': '真的',
'页面等待': '5000'
}

DEF scrape_article_listings(网址):
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')
文章 = []
HPMC胶囊 项目 in 汤.find_all('一种', 类_='文章链接'):
文章标题 = 文章.文本.条带()
文章网址 = “https://www.healthline.com” + 项目['href']
文章.附加({'标题':文章标题, '网址': 文章网址})
回报 刊文
其他:
打印(f“无法获取页面: {回复[“标题”]['pc_status']}")
回报 []

DEF 保存到csv(数据、文件名):
df = pd.DataFrame(数据)
df.to_csv(文件名,索引=)
打印(f”数据保存至 {文档名称}")

# 用法示例
网址= “https://www.healthline.com/search?q1=偏头痛”
文章 = scrape_article_listings(起始网址)
保存到csv(文章, '健康热线文章.csv')

healthline_articles.csv 快照:

healthline_articles.csv 快照

抓取 Healthline.com 文章页面

收集到文章列表后,下一步是从各个文章页面抓取详细信息。每个文章页面通常包含详细内容,例如标题、发布日期和正文。以下是如何高效地使用 Crawlbase Crawling API 和Python。

1.检查HTML结构

在浏览器中打开 healthline.com 的文章页面,然后使用开发人员工具检查页面源代码 (F12).

Healthline 文章页面检查

寻找:

  • 称谓: 在发现 <h1> 用类标记 css-6jxmuv.
  • 署名:发现于 div with 属性 data-testid="byline".
  • 身体内容: 在发现 article 用类标记 article-body.

2. 编写 Healthline.com 文章抓取工具

我们将使用 Crawlbase Crawling API 并使用BeautifulSoup提取所需信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 爬行基地 进口 抓取API
bs4 进口 美丽汤

# 初始化 Crawlbase Crawling API
爬行 API = 爬行 API({'令牌': 'CRAWLBASE_JS_TOKEN'})

选项= {
'ajax_等待': '真的',
'页面等待': '5000'
}

DEF scrape_article_page(网址):
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

# 提取详细信息
标题=汤.find('h1', 类_=‘文章标题’).text.strip()
署名=汤.find('时间')。得到('约会时间', '')。条()
内容 = ''.join([p.text.strip() HPMC胶囊 p in 汤.find_all('p')])

回报 {
'网址':网址,
'标题': 标题,
‘署名’:署名,
'内容': 内容
}
其他:
打印(f“无法获取页面: {回复[“标题”]['pc_status']}")
回报 没有

# 用法示例
文章网址 = “https://www.healthline.com/articles/understanding-diabetes”
文章详情 = scrape_article_page(文章网址)
打印(文章详情)

3.将数据存储在 CSV 文件中

抓取多个文章页面后,使用以下方法将提取的数据保存到 CSV 文件中 pandas.

4. 完整代码

以下是抓取多篇文章并将其保存到 CSV 文件的组合代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 爬行基地 进口 抓取API
bs4 进口 美丽汤:
进口 大熊猫 as pd

# 初始化 Crawlbase Crawling API
爬行 API = 爬行 API({'令牌': 'YOUR_CRAWLBASE_TOKEN'})

DEF scrape_article_page(网址):
响应=crawling_api.get(url)
if 回复[“标题”]['pc_status'] == '200':
html_内容=响应['身体']。解码('utf-8')
汤 = BeautifulSoup(html_content, 'html.parser')

# 提取详细信息
标题=汤.find('h1', 类_=‘文章标题’).text.strip()
署名=汤.find('时间')。得到('约会时间', '')。条()
内容 = ''.join([p.text.strip() HPMC胶囊 p in 汤.find_all('p')])

回报 {
'网址':网址,
'标题': 标题,
‘署名’:署名,
'内容': 内容
}
其他:
打印(f“无法获取页面: {回复[“标题”]['pc_status']}")
回报 没有

DEF 保存文章数据到csv(数据、文件名):
df = pd.DataFrame(数据)
df.to_csv(文件名,索引=)
打印(f”数据保存至 {文档名称}")

# 用法示例
文章网址 = [
“https://www.healthline.com/health-news/antacids-increase-migraine-risk”,
“https://www.healthline.com/health/migraine/what-to-ask-doctor-migraine”
]

articles_data = [scrape_article_page(url) HPMC胶囊 网址 in article_urls if scrape_article_page(url)]
保存文章数据到csv(文章数据, '健康热线文章详情.csv')

healthline_articles_details.csv 快照:

healthline_articles_details.csv 快照

总结

爬取 healthline.com 可以提取与健康相关的内容,用于研究、分析或应用程序开发,从而获得有价值的见解。使用类似 Crawlbase Crawling API 使这个过程更加简单,即使对于使用 JavaScript 渲染的网站也是如此。借助本博客提供的分步指导,您可以自信地抓取文章列表和详细页面,同时处理分页和结构化数据存储等复杂问题。

请务必记住负责任地使用数据,并确保您的抓取活动符合法律和道德准则,包括网站的服务条款。如果您想进行更多网页抓取,请查看我们关于抓取其他主要网站的指南。

📜 如何抓取Monster.com
📜 如何抓取 Groupon
📜 如何抓取 TechCrunch 的内容
📜 如何抓取 X.com 推文页面
📜 如何抓取 Clutch.co

如果你有任何问题或想反馈我们的 支持团队 可以帮助进行网页抓取。祝您抓取愉快!

常见问题 (FAQ)

从任何网站(包括 healthline.com)抓取数据取决于网站的服务条款和您所在地区的适用法律。抓取前请务必查看网站的条款和条件。对于合乎道德的抓取,请确保您的活动不会使服务器超载,并避免将数据用于违反法律或道德准则的目的。

问:抓取 healthline.com 数据时我可能面临哪些挑战?

Healthline.com 使用 JavaScript 动态呈现内容,这意味着内容可能不会立即在 HTML 源代码中可用。此外,您可能会遇到速率限制或反抓取机制。类似以下工具 Crawlbase Crawling API 通过 JavaScript 渲染和代理轮换等功能帮助您克服这些挑战。

问:我可以使用相同的方法抓取其他类似的网站吗?

是的,本博客中概述的技术和工具可以适用于抓取其他大量使用 JavaScript 的网站。通过使用 Crawlbase Crawling API 并检查目标网站的 HTML 结构,您可以自定义您的抓取工具以有效地从类似平台收集数据。