Python网络爬虫:利用正则表达式方法爬取‘’豆瓣读书‘’中‘’新书速递‘’条目

本文介绍使用Python的Requests库结合正则表达式爬取豆瓣读书网站的新书信息,包括书名、作者及图书链接。

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

1.简述:正则表达式是爬虫的方法之一,这里利用Requests库进行爬取,尽管Urllib也能进行爬取,但过程过于繁琐,在了解Urllib的爬取过程后,没有进行实战演练,但在学习了Requests的爬取后,进行了实战学习,因为考虑到确实之后会多用到Requests包,所以这一步还是要好好掌握学习一下的:)另外,还用到re包,主要在利用正则表达式进行爬虫是时用到匹配(re.match)、查找(re.findall)等方法。
2.环境:这次我进行爬虫用的是Jupyter而不再是DOS命令窗口了。Jupyter是Anaconda编译环境的一个交互式笔记本,用起来非常便捷。接下来简单记录一下我的爬取过程。
3.过程:
一),明确爬取内容,这次练习要爬取的内容是豆瓣读书(https://book.douban.com/)的‘新书速递’内容中所列出来的近期新书,主要爬取:1.书名,2.作者和3.对应图书的豆瓣链接。要爬取网页的界面截图如下:
这里写图片描述
我爬取的是新书速递的四十本推荐图书:

这里写图片描述
二)、利用包:
requests,re

三)、代码:

import requests
import re
i=0//统计爬取条目,这里应该要爬到40条图书信息
content=requests.get('https://book.douban.com/').text
pattern=re.compile('<li.*?cover.*?href="(.*?)title="(.*?)">.*?more-meta.*?author">(.*?)</span>.*?year">(.*?)</span>.*?</li>',re.S)
results=re.findall(pattern,content)
for result in results:
    print('书名:'+result[1]+'\n作者:'+result[2].strip()+'\n图书链接:'+result[0])
    i+=1
print('in all:',i)

四)、爬取结果:
这里写图片描述
五)、验证:
数一下豆瓣读书页面上的数目,一共有40条,这里用i进行统计,并输出统计结果,结果显示为40,则表示爬取信息没有遗失。执行截图如下:
这里写图片描述
六)总结:
1.正则表达式不难,主要是掌握它写的方式就好,但它的写法也是爬取的关键所在。
2.这个网址www.oschina.com很牛p,功能很多,其中正则表达式提取模块,可以直接得到想要到的正则表达式功能,但不会写的正则表达式,以后有些不会写的可以直接去上这个网站。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值