• 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可别找我啊

  • 相关阅读:
    docker搭建主从复制mysql
    mysql主从复制(mariadb)
    docker搭建mysql8.0
    docker安装mysql
    终端配置kxsw
    AJAX教程
    移动端常见布局
    css为什么需要精灵图
    元素的显示与隐藏
    css网页布局总结
  • 原文地址:https://www.cnblogs.com/xiu123/p/9094956.html
Copyright © 2020-2023  润新知