IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例 -> 正文阅读

[Python知识库]8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

在初学爬虫采集时,很多人都是从一个单页采集需求开始的,单页案例也分为三种,分别如下:

  1. 单篇新闻
  2. 一些图片合集
  3. 单页表格

本篇博客就在爬虫训练场中依次实现上述三个案例。

首先修改一下上一篇博客设计的卡片。

<div class="card-footer text-center ">
  <a href="#" class="card-link text-decoration-none ">学习博客</a>
  <a href="/general/news" class="card-link text-decoration-none text-success">新闻页</a>
  <a href="/general/imgs" class="card-link text-decoration-none text-success">图片清单</a>
  <a href="/general/table" class="card-link text-decoration-none text-success">表格</a>
</div>

新增加三个案例入口。

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

配置案例相关文件

由于爬虫训练场涉及的目标案例非常多,所以需要进行统筹管理,接下来先在 app 目录建立 general.py 文件,然后在 templates 目录中建立 general 文件夹,在依次新增 news.htmlimgs.htmltable.html 三个文件。此时得到的项目结构如下所示。

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

接下来在 general.py 文件中建立三个路由函数,代码如下。

from flask import render_template
from app import app

"""
普通爬虫,控制器相关配置
"""


@app.route('/general/news')
def news():
    return render_template('general/news.html')


@app.route('/general/imgs')
def news():
    return render_template('general/imgs.html')


@app.route('/general/table')
def news():
    return render_template('general/table.html')

为了让该控制器文件生效,还需要再 app/__init__.py 文件中,导入 general.py 模块。

from flask import Flask

app = Flask(__name__)

from app import routes
from app import general

重启项目,再浏览器访问 http://192.168.0.11:8888/general/news (具体看你的项目地址),得到下图内容,上述配置完毕。
8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例
news.html 文件中导入 Bootstrap 包所以文件,然后编写一篇新闻内容,具体代码请去 gitcode 或者 pachong.vip 查阅,这里仅展示最终效果。
8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

第二个图片案例

第二个单页爬虫案例为图片列表,首先整理一些免费图片素材,将其转存到 app/static/images/faces 目录中。
8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例
然后在 imgs.html 页面依次调用。示例代码如下所示,最终得到的效果在代码后。

<div class="row">
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/3-220P21A447-lp.jpg')}}" alt=""/>
  </div>
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/3-220P41F009-lp.jpg')}}" alt="" />
  </div>
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/3-220P2155220-50-lp.jpg')}}" alt="" />
  </div>
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/3-220P2160142-lp (1).jpg')}}" alt="" />
  </div>
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/3-220P5151547-lp.jpg')}}" alt="" />
  </div>
  <div class="col-sm-6 col-md-3 col-lg-2 p-2">
    <img src="{{url_for('static',filename='images/faces/7-220I1094505-lp.jpg')}}" alt="" />
  </div>
</div>

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

单页表格

网页中仅包含一个表格实现起来比较容易,效果如下。

<table class="table table-striped table-hover" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td style="width:10%;">序号</td>
      <td style="width:35%;">学校</td>
      <td style="width:15%;">本/专</td>
      <td style="width:15%;">公/民</td>
      <td style="width:25%;">查看详情</td>
    </tr>
    <tr>
      <td>1</td>
      <td>北京大学</td>
      <td>本科</td>
      <td>公办</td>
      <td><a href="/school/北京大学.html" target="_blank">进入主页</a></td>
    </tr>
  </tbody>
</table>

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

三个最简单的案例都已经完成,下面针对实践过程中,首页样式 BUG,进行完善。

首页完善

在本篇博客案例编写的过程中,发现首页切换到小屏幕时,会出现下图所示样式 BUG。

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例
该问题出现的原因是由于固定了卡片高度,所以接下来针对该问题进行修复。

去掉页面固定高度

删除卡片标签的 style="height:268px;" 这一配置即可,但是又出现了卡片高度不一致问题。

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

增加最小高度,最小宽度样式,并且页面栅格布局修改为自动适配,代码如下。

<div class="col mt-2">
  <div class="card  border-secondary rounded-5 shadow-sm" style="min-height:268px;min-width:300px;" >
    <div class="card-header text-center">
      <h4 class="card-title">单页爬虫</h4>
    </div>
    <div class="card-body">
      <p class="card-text">
        目标数据呈现在单一页面中,使用最简单的爬虫库可以直接采集,一般用正则表达式即可完成数据提取。
      </p>
      <p class="card-text text-left">难度:?</p>
      <p class="card-text">
        案例:
        <a href="/general/news" class="card-link text-success">新闻页</a>
        <a href="/general/imgs" class="card-link text-success">图片清单</a>
        <a href="/general/table" class="card-link text-success">表格</a>
      </p>
    </div>
    <div class="card-footer text-end">
      <a href="#" class="btn btn-primary card-link ">学习博客</a>
    </div>
  </div>
</div>

此时实现的效果如下所示。

8. 爬虫训练场,第一个爬虫目标页设计,单页爬虫案例

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 802 篇原创博客

从订购之日起,案例 5 年内保证更新

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:07:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 15:00:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码