Py爬虫学习笔记:静态页面正则爬虫——静态页面正则爬虫分析与实现

本文介绍如何通过爬虫技术抓取并解析王者荣耀英雄封面的静态网页,使用正则表达式提取英雄信息,包括封面图片和名称。步骤涉及获取网页源代码、定位英雄区域、分割内容及下载封面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬虫基本逻辑

在这里插入图片描述
爬虫主体逻辑分为4部分

  1. 人工查找承载信息的网站,本项目的目标是找到有王者荣耀英雄封面的网站

  2. 分析网页类型(静态网页还是动态)
    网页内的元素都能在网页源代码中看到,这个网页就是静态网页

  3. 使用网页解析器(本节课讲的正则表达式分析网页)

  4. 提取需要的信息

静态网页爬虫实现

实现的思路

  1. 使用requests库获取网页源代码
  2. 使用正则表达式提取全部英雄区域内容
  3. 使用正则表达式分别提取每个英雄封面和名称
  4. 使用requests下载英雄封面
1、获取网页源代码
import requests
response = requests.get('http://news.4399.com/gonglue/wzlm/yingxiong/')
response.encoding = 'gb2312'
print(response.text)

其中encoding,要根据网页源代码的charset找到。否则获取的源代码为乱码

2、获取全部英雄区域的代码

为了提取一下代码内容

<ul class="rolelist cf" id="hreo_list">
  ...
</ul>

需要使用正则表达式

r'<ul\sclass="rolelist\scf"\sid="hreo_list">([\s\S]*?)<\/ul>'

在这里插入图片描述

分割每个英雄内容

我们使用split对字符串进行分割

str = "a,b,c,d,e"
print(str.split(','))

所以最终代码为

import requests
import re
response = requests.get('http://news.4399.com/gonglue/wzlm/yingxiong/')
response.encoding = 'gb2312'
obj = re.search(r'<ul\sclass="rolelist\scf"\sid="hreo_list">([\s\S]*?)<\/ul>', response.text)
heros = obj.group(1).split('</li>') # 根据</li>分割
print(len(heros) - 1) # 打印英雄个数,最后一个</li>分割后会出现一个空,所以减1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值