【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词

目录

在本文中,我将介绍如何使用Python编写一个网络爬虫,从百度学术页面提取研究论文的标题、作者、摘要和关键词。我们将使用 requestsBeautifulSoup库来实现这一目标。

安装所需库

首先,确保已安装所需的Python库:

bash 复制代码
pip install requests beautifulsoup4

编写爬虫

以下是一个示例脚本:

python 复制代码
import requests
from bs4 import BeautifulSoup

# 百度学术页面URL
url = "https://xueshu.baidu.com/usercenter/paper/show?paperid=7ea6e4650085a4bf2457468cc815cabe&site=xueshu_se"

# 请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}

# 发送请求
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'

if response.status_code == 200:
    # 解析HTML
    soup = BeautifulSoup(response.text, 'html.parser')

    # 提取标题
    title_tag = soup.find('a', {'data-click': "{'act_block':'main','button_tp':'title'}"})
    title = title_tag.get_text(strip=True) if title_tag else "未找到标题"

    # 提取作者
    author_tag = soup.find('p', {'class': 'author_text'})
    author = author_tag.get_text(strip=True) if author_tag else "未找到作者"

    # 提取摘要
    abstract_tag = soup.find('p', {'class': 'abstract'})
    abstract = abstract_tag.get_text(strip=True) if abstract_tag else "未找到摘要"

    # 提取关键词
    keywords_tag = soup.find('div', {'class': 'kw_wr'})
    if keywords_tag:
        keywords = [keyword.get_text(strip=True) for keyword in keywords_tag.find_all('a')]
        keywords = ', '.join(keywords)
    else:
        keywords = "未找到关键词"

    # 打印提取结果
    print("标题:", title)
    print("作者:", author)
    print("摘要:", abstract)
    print("关键词:", keywords)
else:
    print("无法访问网页")

代码解释

  1. 请求头设置:使用请求头模拟浏览器请求,避免被网站屏蔽。
  2. 解析网页内容 :使用BeautifulSoup解析HTML,提取所需信息。
  3. 处理未找到元素的情况:如果元素未找到,输出相应的提示信息。

运行脚本

将上述代码保存为一个Python文件,例如scraper.py,然后在命令行中运行:

bash 复制代码
python scraper.py

结果


相关推荐
IVEN_4 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang5 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮5 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling5 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮8 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽9 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers