python爬虫_入门_翻页

Posted 咻_python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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可别找我啊

以上是关于python爬虫_入门_翻页的主要内容,如果未能解决你的问题,请参考以下文章

如何入门 Python 爬虫

Python爬虫_案例:使用正则表达式的爬虫

Python爬虫_案例:使用正则表达式的爬虫

2.Python爬虫入门_requests

python爬虫_入门

网络爬虫技术入门_Python基础与爬虫技术