当前位置: 首页 > news >正文

【爬虫】单个网站链接爬取文献数据:标题、摘要、作者等信息

源码链接: https://github.com/Niceeggplant/Single—Site-Crawler.git

一、项目概述

从指定网页中提取文章关键信息的工具。通过输入文章的 URL,程序将自动抓取网页内容

二、技术选型与原理

  1. requests:这是 Python 中用于发送 HTTP 请求的常用库。它能够模拟浏览器向网页服务器发送请求,并获取网页的 HTML 文本内容。在本项目中,我们利用它来获取目标文章网页的源代码,为后续的信息提取提供基础数据。其使用方法非常简单,只需调用 requests.get() 方法,并传入目标 URL 和可选的请求头信息即可。例如:
import requestsurl = "https://example.com/article"
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)
html_text = response.text

这里设置请求头中的 User-Agent 是为了模拟浏览器访问,避免一些网站对非浏览器请求的限制。

  1. BeautifulSoup:该库主要用于解析 HTML 和 XML 文档。它能够将复杂的网页结构转换为易于操作的 Python 对象,方便我们通过标签、类名、ID 等属性定位和提取网页中的元素。在本项目中,我们使用它来解析 requests 库获取到的 HTML 文本,以提取文章的各种信息。使用时,首先需要创建一个 BeautifulSoup 对象,例如:
from bs4 import BeautifulSoupsoup = BeautifulSoup(html_text, 'html.parser')

这里的 html.parser 是 Python 内置的 HTML 解析器,也可以根据需要选择其他更强大的解析器,如 lxml 解析器。

三、代码实现步骤

  1. 定义提取函数
import requests
from bs4 import BeautifulSoupdef fetch_article_info(url):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}try:response = requests.get(url, headers=headers)response.raise_for_status()  soup = BeautifulSoup(response.text, 'html.parser')

这里定义了 fetch_article_info 函数,它接受一个文章 URL 作为参数,并在函数内部进行请求和解析的操作。

  1. 提取标题
        title_element = soup.find('h1')title = title_element.get_text().strip() if title_element else '未找到'

通过 soup.find('h1') 查找网页中的 <h1> 标签,通常文章标题会在这个标签内。如果找到,则获取其文本内容并去除首尾空格;如果未找到,则将标题设为 未找到

  1. 提取作者
        authors = []author_elements = soup.find_all('div', class_='authors')if not author_elements:author_elements = soup.find_all('input', id='authors')for author_element in author_elements:author_links = author_element.find_all('a')for link in author_links:authors.append(link.get_text().strip())authors = ', '.join(authors) if authors else '未找到'

首先尝试通过查找类名为 authors<div> 标签来获取作者信息,如果未找到,则查找 idauthors<input> 标签。然后遍历找到
在这里插入图片描述

http://www.lryc.cn/news/519670.html

相关文章:

  • Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)
  • leetcode_2816. 翻倍以链表形式表示的数字
  • 【论文阅读】MAMBA系列学习
  • MySQL教程之:批量使用mysql
  • 17_Redis管道技术
  • 【LC】3270. 求出数字答案
  • 【redis】ubuntu18安装redis7
  • d2j-dex2jar classes.dex 执行报错:not support version 问题解决
  • 智慧城市应急指挥中心系统平台建设方案
  • QT鼠标、键盘事件
  • Ceph分布式存储集群,不仅仅是一个简单的对象存储解决方案
  • DSP+Simulink——点亮LED灯(TMSDSP28379D)超详细
  • Linux 环境下编译安装 OpenCV 4.8.x
  • phpenc加密程序源码
  • 学英语学Elasticsearch:04 Elastic integrations 工具箱实现对第三方数据源的采集、存储、可视化,开箱即用
  • 2024.10.12 校招 实习 内推 面经
  • ios越狱脚本巨魔商店安装教程
  • 浅谈容灾技术方案详解
  • 时序数据库InfluxDB—介绍与性能测试
  • Python的循环
  • 【机器学习】聚类评价指标之福尔克斯–马洛斯指数(Fowlkes–Mallows Index, FMI)
  • 分享一次面试经历
  • 网络攻击行为可视化分析系统【数据分析 + 可视化】
  • Qt 智能指针
  • CODESYS MODBUS TCP通信(禾川Q1 PLC作为MODBUS TCP从站)
  • 10.STM32F407ZGT6-内部温度传感器
  • 运维安全中心(堡垒机)
  • Linux OOM | Early OOM | 进程监视
  • 【2024年华为OD机试】(A卷,100分)- 等和子数组最小和(Java JS PythonC/C++)
  • NFS服务