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

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

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

目录

  1. 为什么要抓取Healthline.com?
  2. 从 Healthline.com 中提取的关键数据点
  3. 爬虫库 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. 常见问题

为什么要抓取Healthline.com?

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

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

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

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

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

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

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

爬虫库 Crawling API 用于 healthline.com 抓取

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

为什么使用 Crawlbase Crawling API?

爬行基地 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 的交互 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')

文章 = []
项目 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')
文章 = []
项目 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 获取文章的 HTML 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() 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() 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) 网址 in article_urls if scrape_article_page(url)]
保存文章数据到csv(文章数据, '健康热线文章详情.csv')

healthline_articles_details.csv 快照:

healthline_articles_details.csv 快照

总结

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

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

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

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

常见问题

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

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

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

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

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