其实翻页很简单,还是这个页面http://bbs.fengniao.com/forum/10384633.html,话说我得给这个人增加了多大的访问量啊......
那么接下来就好办了,只要把这个数字每次+1或-1就可以了,甚至可以从http://bbs.fengniao.com/forum/1.html开始尝试连接,一直+1,直到502或404断开
<span style="color: #0000ff">import
<span style="color: #000000"> urllib
<span style="color: #0000ff">import<span style="color: #000000"> urllib2
<span style="color: #0000ff">import<span style="color: #000000"> re
<span style="color: #008000">#<span style="color: #008000">处理地址,并获取页面全部的图片地址
<span style="color: #0000ff">def<span style="color: #000000"> get_image_url(url):
<span style="color: #008000">#<span style="color: #008000">url_format = urllib2.Request(url) #1
url_open = urllib.urlopen(url) <span style="color: #008000">#<span style="color: #008000">2
url_read = url_open.read() <span style="color: #008000">#<span style="color: #008000">3
re_value = re.compile(<span style="color: #800000">'<span style="color: #800000">(?<=src=").*?.jpg<span style="color: #800000">'<span style="color: #000000">)
image_url_list = re.findall(re_value,url_read) <span style="color: #008000">#<span style="color: #008000">4
<span style="color: #0000ff">return<span style="color: #000000"> image_url_list
<span style="color: #008000">#<span style="color: #008000">这个函数专门用来下载,前面两行是将图片连接中/前面的内容全部删除,留下后面的文件名用来保存文件的,try不说了,不清楚请翻回去看容错
<span style="color: #0000ff">def<span style="color: #000000"> down_image(image_url):
rev = <span style="color: #800000">'<span style="color: #800000">^.*/<span style="color: #800000">'<span style="color: #000000">
file_name = re.sub(rev,<span style="color: #800000">''<span style="color: #000000">,image_url)
<span style="color: #0000ff">try<span style="color: #000000">:
urllib.urlretrieve(image_url,file_name)
<span style="color: #0000ff">except<span style="color: #000000">:
<span style="color: #0000ff">print <span style="color: #800000">'<span style="color: #800000">download %s fail<span style="color: #800000">' %<span style="color: #000000">image_url
<span style="color: #0000ff">else<span style="color: #000000">:
<span style="color: #0000ff">print <span style="color: #800000">'<span style="color: #800000">download %s successed<span style="color: #800000">' %<span style="color: #000000">image_url
<span style="color: #008000">#<span style="color: #008000">这个函数用来处理页面,每次+1
<span style="color: #0000ff">def<span style="color: #000000"> get_page(url):
url_num = re.search(<span style="color: #800000">'<span style="color: #800000">(?<=/)[0-9]+(?=.)<span style="color: #800000">'<span style="color: #000000">,url)
url_num =<span style="color: #000000"> url_num.group()
url_num_1 = int(url_num) + 1<span style="color: #000000">
url =<span style="color: #000000"> url.replace(url_num,str(url_num_1))
<span style="color: #0000ff">return<span style="color: #000000"> url
<span style="color: #0000ff">if <span style="color: #800080">name == <span style="color: #800000">'<span style="color: #800000">main<span style="color: #800000">'<span style="color: #000000">:
url = <span style="color: #800000">'<span style="color: #800000">http://bbs.fengniao.com/forum/10384633.html<span style="color: #800000">'
<span style="color: #0000ff">for n <span style="color: #0000ff">in range(1,10<span style="color: #000000">):
url =<span style="color: #000000"> get_page(url)
image_url_list =<span style="color: #000000"> get_image_url(url)
<span style="color: #0000ff">for image_url <span style="color: #0000ff">in<span style="color: #000000"> image_url_list:
down_image(image_url) <span style="color: #008000">#<span style="color: #008000">5