python爬虫翻页_python爬虫_入门_翻页

写出来的爬虫,肯定不能只在一个页面爬,只要要爬几个页面,甚至一个网站,这时候就需要用到翻页了

其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum/10384633.html,话说我得给这个人增加了多大的访问量啊......

10384633重点关注下这个数字,这个就是页面的名称,现在尝试把这个数字+/-1看看有没有结果

验证http://bbs.fengniao.com/forum/10384634.html

1045252-20180527004019671-554331310.png

可以看到,这个页面是可以访问的

再试试http://bbs.fengniao.com/forum/10384632.html,这次不截图了,可以自己去试试,也是可以访问的

那么接下来就好办了,只要把这个数字每次+1或-1就可以了,甚至可以从http://bbs.fengniao.com/forum/1.html开始尝试连接,一直+1,直到502或404断开

下面上代码,还是用之前的内容,这次加了个页面处理的函数

#!/usr/bin/python#coding: UTF-8

importurllibimporturllib2importre#处理地址,并获取页面全部的图片地址

defget_image_url(url):#url_format = urllib2.Request(url) #1

url_open = urllib.urlopen(url) #2

url_read = url_open.read() #3

re_value = re.compile('(?<=src\=\").*?\.jpg')

image_url_list= re.findall(re_value,url_read) #4

returnimage_url_list#这个函数专门用来下载,前面两行是将图片连接中/前面的内容全部删除,留下后面的文件名用来保存文件的,try不说了,不清楚请翻回去看容错

defdown_image(image_url):

rev= '^.*/'file_name= re.sub(rev,'',image_url)try:

urllib.urlretrieve(image_url,file_name)except:print 'download %s fail' %image_urlelse:print 'download %s successed' %image_url#这个函数用来处理页面,每次+1

defget_page(url):

url_num= re.search('(?<=\/)[0-9]+(?=\.)',url)

url_num=url_num.group()

url_num_1= int(url_num) + 1url=url.replace(url_num,str(url_num_1))returnurlif __name__ == '__main__':

url= 'http://bbs.fengniao.com/forum/10384633.html'

for n in range(1,10):

url=get_page(url)

image_url_list=get_image_url(url)for image_url inimage_url_list:

down_image(image_url)#5

其实可以给get_page传两个参数,一个是URL另一个是递增的数值,就变成了get_page(url,n),但是我没有这么写,可以思考下为什么,如果把for n in range(1,10)改成while True会怎样?嘿嘿......回头人家封你IP可别找我啊

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值