zoukankan      html  css  js  c++  java
  • python爬虫_入门_翻页

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

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

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

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

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

    再试试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
    
    import urllib
    import urllib2
    import re
    
    #处理地址,并获取页面全部的图片地址
    def get_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
      return image_url_list
    
    #这个函数专门用来下载,前面两行是将图片连接中/前面的内容全部删除,留下后面的文件名用来保存文件的,try不说了,不清楚请翻回去看容错
    def down_image(image_url):
      rev = '^.*/'
      file_name = re.sub(rev,'',image_url)
      try:
        urllib.urlretrieve(image_url,file_name)
      except:
        print 'download %s fail' %image_url
      else:
        print 'download %s successed' %image_url
    
    #这个函数用来处理页面,每次+1
    def get_page(url):
      url_num = re.search('(?<=/)[0-9]+(?=.)',url)
      url_num = url_num.group()
      url_num_1 = int(url_num) + 1
      url = url.replace(url_num,str(url_num_1))
      return url
    
    if __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 in image_url_list:
          down_image(image_url) #5

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

  • 相关阅读:
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)
    install ubuntu on Android mobile phone
    Mac OS, Mac OSX 与Darwin
    About darwin OS
    自然语言交流系统 phxnet团队 创新实训 项目博客 (十)
    Linux下编译安装qemu和libvirt
    libvirt(virsh命令总结)
    深入浅出 kvm qemu libvirt
    自然语言交流系统 phxnet团队 创新实训 项目博客 (九)
    自然语言交流系统 phxnet团队 创新实训 项目博客 (八)
  • 原文地址:https://www.cnblogs.com/xiu123/p/9094956.html
Copyright © 2011-2022 走看看