【python】爬虫-西安医学院-校长信箱

简介: 本文以西安医学院-校长信箱为基础来展示爬虫案例。来介绍python爬虫。

本文以西安医学院-校长信箱为基础来展示爬虫案例。

以下就是我们目标要爬取的数据。这个要考虑到分页情况。

image.png

运行截图:

image.png

最关键的是你如何分析页面的元素,然后对应取值出来即可。

这是爬取后存入excel:
image.png

教学代码:

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook

import time


def parse_page(url, ws):
    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'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')

    table = soup.find('div', class_='content').find('table')
    rows = table.find_all('tr')[1:]  # 第一行是表头,不需要

    for row in rows:
        cols = row.find_all('td')
        if len(cols) < 5:  # 确保列数符合预期
            continue

        query_code = cols[1].text.strip()
        title = cols[2].text.strip()
        submit_time = cols[3].text.strip()
        process_status = cols[4].text.strip()
        ws.append([query_code, title, submit_time, process_status])
        print("查询码:", query_code)
        print("标题:", title)
        print("提交时间:", submit_time)
        print("处理状态:", process_status)
        print("-" * 50)


def main():
    wb = Workbook()
    ws = wb.active
    ws.append(["查询码", "标题", "提交时间", "处理状态"])

    base_url = "https://www.xiyi.edu.cn/gzcylist.jsp"
    page_num = 1
    while True:
        url = f"{base_url}?totalpage=101&PAGENUM={page_num}&urltype=tree.TreeTempUrl&wbtreeid=1172"
        print(f"正在爬取第 {page_num} 页...")

        parse_page(url, ws)
        wb.save("crawl_data.xlsx")
        time.sleep(2)  # 休息2秒

        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        next_button = soup.find('span', class_='p_next')

        if next_button is None:
            break  # 如果下一页按钮不存在,结束循环
        page_num += 1

    print("数据已保存到 crawl_data.xlsx 文件中。")


if __name__ == "__main__":
    main()
相关文章
|
19天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
20天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
21天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
28天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
79 6
|
22天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
26天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
43 7
|
29天前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
57 6
|
26天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
26天前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
139 1
|
29天前
|
数据采集 前端开发 中间件
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第26天】Python是一种强大的编程语言,在数据抓取和网络爬虫领域应用广泛。Scrapy作为高效灵活的爬虫框架,为开发者提供了强大的工具集。本文通过实战案例,详细解析Scrapy框架的应用与技巧,并附上示例代码。文章介绍了Scrapy的基本概念、创建项目、编写简单爬虫、高级特性和技巧等内容。
57 4