【爬虫】使用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

结果


相关推荐
玄同7654 小时前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
User_芊芊君子4 小时前
CANN010:PyASC Python编程接口—简化AI算子开发的Python框架
开发语言·人工智能·python
Max_uuc4 小时前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
白日做梦Q4 小时前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
故事不长丨4 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
牵牛老人4 小时前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
froginwe114 小时前
Python3与MySQL的连接:使用mysql-connector
开发语言
喵手4 小时前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手4 小时前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆4 小时前
YOLOP车道检测
人工智能·python·算法