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可别找我啊
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架