python网络爬虫简单项目_python网络爬虫之四简单爬取豆瓣图书项目

一.爬虫项目一:

豆瓣图书网站图书的爬取:importrequestsimportre

content= requests.get("https://book.douban.com/").text#注:此时我们打印输出结果,可以看到输出我们的网页字符串:#print(content)#然后我们编辑匹配豆瓣图书网站抓取图书所用到的正则表达式。

pattern = re.compile(r'

(.*?).*?class="author">(.*?).*?class="year">(.*?).*?class="publisher">(.*?).*?',re.S)#注意,经过测试,我们可以使用.代表空格,然后匹配的元组(.*?)后面最好不要再加.*?,要不然这样容易报错,#容易匹配不出结果。

results =re.findall(pattern,content)#然后我们通过re.findall函数就可以匹配出我们想要的结果了。

print(results)#注,经过测试,我们发现,通过re.findall返回的结果也就是我们获取的结果是一个列表,而每一个列表#里面的数据都是一个元组,此时我们就可以先通过循环便利的方式先获取到列表里面的个每个元组

for result inresults:print(result)#注,通过循环遍历的方式,我们就可以获取到列表里面的每个元组,从打印出来的每个元组的信息来看,每个元组#都有五个元素,他们分别是url,name,author,date,publisher

获取元组里面的数据,我们可以通过位置符号来指定:

如,result[0],result[1],result[2],result[3],result[4],我们也可以直接打印输出:

如:print(result[0],result[1],result[2],result[3],result[4])

我们也可以通过一一对应的方式,将元组中的各个元素分别赋值给每个变量:

如下所示:

url,name,author,date,publisher=result

然后打印输出:print(url,name,author,date,publisher)#但是经过测试我们可以发现,其实每个元组里面的值后面都带了一个换行符,导致元组里面的数据取出来的时候#不是在一行里面显示的,此时我们可以将这些换行符去掉,这里我们有两种方式,可以实现目的:

第一种方式:#使用strip()的方法,去除字符串周围的空格元素,即可得到我们想要的结果

url =url.strip()

name=name.strip()

author=author.strip()

date=date.strip()publisher = publisher.strip()#此时打印输出,就可以得到我们想要的值。

print(url,name,author,date,publisher)

第二种方式:使用re.sub的方法:#用空字符串来替换我们字符串中的换行符,此时我们用\s来代表换行符,用一个空字符串来替代他,格式如下:

url = re.sub('\s', "", url)

name= re.sub('\s', "", name)

author= re.sub('\s', "", author)

date= re.sub('\s', "", date)

publisher= re.sub('\s', "", publisher)#此时打印输出,也可以得到我们想要的值。

print(url,name,author,date,publisher)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值