爬虫_Day 2 urllib 模块实战

本文介绍了使用Python的urllib模块爬取纵横中文网的24小时畅销榜,通过分析网页源代码,利用正则表达式提取数据,并通过循环实现多页抓取。在遇到反爬机制时,作者预告将分享如何伪装浏览器进行应对。

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

DuangDuangDuang

上个笔记说了正则表达式

这次实战一下还有urllib模块

这次来爬“纵横中文网”24小时畅销榜名单

经过一顿装逼后 不 操作

成功

怎么搞的呢

首先,介绍一个模块“urllib”

"""
这个模块主要记住三个模块(有5个的):
  1、request:用于访问读取url(主讲)
    先说这几个函数:urlopen() info() getcode() read()还有很多
  2、error:显示异常
  3、parse:解析url
 """

首先分析一下我们要爬的页面

小说排行榜,最新热门小说排行榜,各类原创小说排行榜,纵横中文小说网​www.zongheng.com

 


http://www.zongheng.com/rank/details.html?rt=3&d=1&p=1

然后查看网页源代码(右键就会看见)

我们搜索一下《剑来》第一名的小说

再找一下排名第二的小说

我们分析一下获取到标签

<div class="rank_d_list borderB_c_dsh clearfix" bookName = "剑来" bookId="672340">

这个时候我们就需要使用正则表达式

怎么 写呢 bookName = "(.*?)" 对吧,前面的匹配不匹配都可以

要是匹配怎么写:

pat = '<div class=".*" bookName = "(.*?)" bookId=".*">'

一共有3页

点击下一页

我们发现p =2

那我们就定义个循环控制翻页

OK 这就分析完了

那就直接撸代码,干就完了

我们先爬第一页的数据

import urllib.request
import re
# 导包

url = "http://www.zongheng.com/rank/details.html?rt=3&d=1&p=1"
# 定义要访问的链接

然后就要去访问,这个时候就要用到urllib模块 了

我们用urllib.request.urlopen()方法

urlopen 方法常用三个参数

urllib.request.urlopen(url, data=None, [timeout, ]*)

第一个就是请求连接

第二个我们在post请求的时候需要填写表单的时候用的

第三个设置超时时间

data = urllib.request.urlopen(url).read().decode("utf-8")
# read()读取网页 
# decode()设置编码格式 
 pat = '<div class=".*" bookName = "(.*?)" bookId=".*">'
 # 定义正则表达式规则
 # 这个注意,我们的标签中有双引号,那我们外部就用单引号

筛选数据 1??

rst = re.compile(pat).findall(data)
# 全局搜索,上一篇已经说了

输出一下

['剑来', '逆天邪神', '一剑独尊', '最强狂兵', '长宁帝军', '剑仙在此', '元尊', '雪中悍刀行', '大国名厨', '踏星', '无敌剑域', '宰执天下', '平天策', '帝道独尊', '一世独尊', '偷香高手', '赘婿出山', '差一步苟到最后', '最强逆袭', '医流武神']

看来是成功了,第一页这样就获取成功了

获取第二页第三页就简单了,加个循环就OK

最后整体 的代码就是这样

import urllib.request
import re

for i in range(1, 4):
    url = "http://www.zongheng.com/rank/details.html?rt=3&d=1&p=" + str(i)
    data = urllib.request.urlopen(url).read().decode("utf-8")
    pat = '<div class=".*" bookName = "(.*?)" bookId=".*">'
    rst = re.compile(pat).findall(data)
    for j in range(0, len(rst)):
        print(rst[j])

    print("第" + str(i) + "页爬取完成\n\n")

看起来不是特别的南

当我想在装一波的时候,却遇见了反爬

丝毫不慌张

我们以后分享伪装浏览器

 

靓仔上车不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值