ulr.request库及re库的简单运用
学习Python的同学想必都知道,Python的库有很多,今天我们就来运用urllib.request库和re库来写一个简单的爬虫代码
复制代码
认识爬虫
我们要写一个爬虫代码首先要有一个初步的认识,那就我们要爬取的内容是什么,以及该如何爬取。爬虫是用来抓取信息的一段程序或代码,那么该如何准确的找到信息或者说如何把需要的信息留下来是我们写爬虫的关键。首先我们需要用到两个库:urllib.request库用来获取网页的url 用 re 库来实现具体框架。
首先我们来看我们要获取的网站的html信息
复制代码
爬取步骤
以上这段html文件是我从网站上查看到的,我们可以发现用红笔圈出来的部分使我们需要的数据,而这些数据都在蓝笔圈出来的部分里面那么我们可以把问题分为三个步骤。1.提取html里“dl”内的部分 2.提取“dl”内"dd"的部分 3.清洗数据,取出我们要的部分。 代码如下:
import urllib.request as req
import re
url='http://www.jianlaixiaoshuo.com/' #获取要爬取的网页的url
webpage=req.urlopen(url)
data=webpage.read().decode('utf-8') #打开该url,并读取其中的数据
website='http://www.jianlaixiaoshuo.com/' #保存该网页的url
dl=re.findall(r'<dl(.*?)</dl>',data,re.S) #找到要取的数据的特点 dl 语句截取dl里的数据
dd=re.findall(r'<dd(.*?)</dd>',dl[0],re.S) #找到每个链接的特点 dd 语句,截取dd里的数据
hrefs=[]
for i in dd: #遍历dd
href=re.findall(r'<a.*?(.*?)">',i,re.S) #把每一项的数据保存在 href 中
href=str(href)
href=href.replace("['",'') #清洗取出来的数据
href=href.replace("']",'')
href=href.replace(' title="','')
href=href.replace(' href="/','')
hrefs.append(website+href) #把二级链接变完整
for i in hrefs:
print(i)
print('\n')
复制代码