Python抓取糗事百科成人版图片

2023-05-16

最近开始学习爬虫,一开始看的是静觅的爬虫系列文章,今天看到糗事百科成人版,心里就邪恶了一下,把图片都爬下来吧,哈哈~

虽然后来实现了,但还是存在一些问题,暂且不提,先切入正题吧,没什么好说的,直接上代码如下:

环境:Python2.79

 


 1 #coding: utf-8
 2 import urllib2
 3 import urllib
 4 import re
 5 import os
 6 
 7 #糗百成人版抓取图片
 8 class QBAdult:
 9 
10     #类初始化
11     def __init__(self):
12         self.baseURL = "http://www.qiubaichengnian.com/"
13     #获取索引页面内容
14     def getPage(self, pageIndex):
15         url = self.baseURL + "index_" + str(pageIndex) + ".html"
16         req_header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
17                         'Accept':'text/html;q=0.9,*/*;q=0.8',
18                         'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
19                         'Accept-Encoding':'gzip',
20                         'Connection':'close',
21                         'Referer':None #注意如果依然不能抓取的话,这里可以设置抓取网站的host
22                     }
23         req_timeout = 5
24         request = urllib2.Request(url, None, req_header)
25         reponse = urllib2.urlopen(request, None, req_timeout)
26         #print reponse.read().decode('gbk')
27         return reponse.read().decode('gbk')
28 
29     #获取页面所有条目信息,list格式
30     def getContents(self, pageIndex):
31         page = self.getPage(pageIndex)
32         pattern = re.compile('div class="ui-module".*?<a href=.*?>(.*?)</a>.*?<img.*?src="(.*?)"', re.S)
33         items = re.findall(pattern, page)
34         #for item in items:
35             #print item[0], item[1]
36         return items
37 
38 
39     #获取页面所有图片
40     def getAllImgs(self, items):
41 
42         images = []
43         for item in items:
44             images.append(item[1])
45         return images
46 
47 
48     #保存多张图片
49     def saveAllImg(self, images, n, name):
50         number = 1
51         print u"--------------正在保存第", n , u"页美女图片-------------"
52         for imageURL in images:
53             splitPath = imageURL.split('.')
54             fTail = splitPath.pop()
55             fileName = name + "/" + str(n) + "-" + str(number) + "." + fTail
56             self.saveImg(imageURL, fileName)
57             number += 1
58 
59 
60     #传入图片地址,文件名,保存单张图片
61     def saveImg(self, imageURL, fileName):
62         u = urllib.urlopen(imageURL)
63         data = u.read()
64         f = open(fileName, 'wb')
65         f.write(data)
66         print u"正在保存美女图片", fileName
67         f.close()
68 
69     #创建新目录
70     def mkdir(self, path):
71         path = path.strip()
72         #判断是否存在
73         isExists = os.path.exists(path)
74         if not isExists:
75             print u"新建名字为", path, u"的文件夹"
76             os.makedirs(path)
77             return True
78         else:
79             #如果目录存在则不创建,并提示目录已存在
80             print u"名为", path, u"的文件夹已经创建成功"
81             return False
82 
83 
84     def savePageInfos(self, start, end):
85         fileName = "beautifull"
86         #获取一页内容,存入beautifull文件夹
87         self.mkdir(fileName)
88         for i in range(start, end+1):
89             print u"正在保存第", i, "页的美女图片"
90             contents = self.getContents(i)
91             images = self.getAllImgs(contents)
92             self.saveAllImg(images, i, fileName)
93 
94 
95 qAdult = QBAdult()
96 qAdult.savePageInfos(1, 301)  

 

其中16-23行的代码是后来出现IOERROR以及超时等错误后加上的,但是这种方法只是治标不治本,时不时程序还会停止,错误如下:

小规模抓取图片,几百页抓取会出现如上问题,我还没有找到什么原因。。。。

转载于:https://www.cnblogs.com/nju2014/p/4451674.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python抓取糗事百科成人版图片 的相关文章

随机推荐

  • 给Hexo搭建的博客绑定域名

    前言 前几天利用闲置时间 xff0c 利用hexo在GitHub上搭建了一个静态博客 xff0c 那么既然是个人博客 xff0c 当然要上自己的域名了 step 1 首先你得你得搭建 XXX github io 这样的博客 xff0c he
  • chrome浏览器提取网页视频

    http blog csdn net pipisorry article details 37728839 在我们平时上网看视频听音乐时都会产生缓存 xff0c 可是我们非常难通过一些软件把当中的视频和音乐文件提取出来 网页抓取视频的方法
  • js 统计一个字符串中,出现最多的字符和出现次数

    运用到的关键函数是str charAt index xff1a 根据位置返回字符 另外 xff0c 建立一个对象o xff0c 其中存放的key为字符串的各不重复的字母 xff0c 键值为出现的次数 代码 xff1a span class
  • IdentityServer4 配置负载均衡

    如果使用 IdentityServer4 做授权服务的负载均衡 xff0c 默认情况下是不可以的 xff0c 比如有两个授权服务站点 xff0c 一个资源服务绑定其中一个授权服务 xff08 Authority配置 xff09 xff0c
  • android 打开串口log,user版本如何打开uart,让android log从串口kernel log输出

    数据流控制是否正确 xff0c 一般需关闭 xff0c 下面为RS232的三种流控制模式介绍 xff1a DTR DSR xff1a 硬件上要有对应接口 xff0c 软件上实现对应协议 xff0c 才能实现此流控制 具体实现起来 xff0c
  • 安装flashplugin提示依赖libgdk-pixbuf2.0-0

    为什么80 的码农都做不了架构师 xff1f gt gt gt 今天安装flashplugin 出现问题 xff0c sudo apt get install adobe flashplugin 结果提示 xff1a 下列软件包有未满足的依
  • Python新手入门教程,从环境准备到掌握基本编程

    Lesson 1 准备好学习Python的环境 下载的地址是 xff1a www python org 为了咱们的便当 xff0c 我在校内作了copy xff1a http 10 1 204 2 tool compiler amp IDE
  • mariadb使用C语言编程,MHA实现mariadb的高可用的详细步骤及配置参数详解

    MHA实现mariadb的高可用的详细步骤及配置参数详解 A 实验环境说明 a 4台centos7主机 b 角色说明 xff1a a MHA xff1a 192 168 36 35 b Master mariadb xff1a 192 16
  • c语言中sizeof函数的作用是,c语言中sizeof函数的用法

    C语言sizeof函数如何使用 xff1f 怎样利用sizeofCSS布局HTML小编今天和大家分享各种数据类型占用的字节数 xff1f 1 sizeof不是函数 xff0c 它只是一个操作符 operator 2 sizeof的作用是返回
  • AutoCAD快捷键大全

    送给学习AutoCAD的朋友 xff0c 最后一张图片是可以打印的键盘标签 xff0c 可以打印出来贴在键盘上方便记住 xff01 如果感觉模糊的话 xff0c 可以单击文章图片进行查看 xff01
  • 如何恢复U盘里的删除文件?

    对于经常使用到U盘的用户来说 xff0c 误删U盘内重要数据的情况经常发生 xff0c U盘内重要的资料从电脑上被删除后 xff0c 不经过回收站 xff0c 我们很难从回收站中还原数据 那么 xff0c 如何恢复u盘删除文件 xff1f
  • maven maven.compiler.source和maven.compiler.target的坑

    最近建议产品组把jdk 1 7升级到1 8 xff0c 昨晚开发报了个问题过来 xff0c 说maven compiler source和maven compiler target改成1 8之后 xff0c 编译出来的代码还是1 7 xff
  • 1‘b0 什么意思

    在看datasheet 中有类似表达式如下 xff1a 3 39 b000 1 39 b1 1 39 b0 3 39 b000这个表示 xff1a b代表二進制 3代表位元數 1 39 b1 xff1a 宣告為一位元二進制之值為1 xff0
  • css 识别软件测出来的尺寸和代码设置的不一样

    这是我在模仿网页时遇到的问题 xff0c 困扰了一会儿 xff0c 情况是这样的 我下载了参考的网页html文件 xff0c 为了测量某个box的高度 xff0c 用了一款可以截图识别的软件 xff1a 量出来的box高度是30px xff
  • SpringBoot中注入ApplicationContext对象的三种方式

    在项目中 xff0c 我们可能需要手动获取spring中的bean对象 xff0c 这时就需要通过 ApplicationContext 去操作一波了 xff01 1 直接注入 xff08 Autowired xff09 span clas
  • vue中$attrs你会用吗?

    这篇文章的知识点是父子组件通讯 xff0c 如果你了解 props 但是还没了解过 attrs xff0c 那么建议你花1分钟时间阅读 xff0c 了解它的优点 xff0c 并学会在项目中使用 关于 attrs的介绍 包含了父作用域中不作为
  • 企业微信三方应用开发(二)授权开通及登录流程

    何谓企业微信第三方应用 一句话简介 一个S商场 企业微信 里入驻了D商站 xff08 服务商 xff09 在卖他的C产品 xff08 三方应用 xff09 三句话路径 我们申请成为企业微信服务商 xff0c 入驻到企业微信 然后经过 应用开
  • PHP+AJAX实现账号注册和登陆,附可用demo

    前言 登陆和注册已经是网站的标配了 xff0c 所以这是我们web开发学习过程中必学的了 其实很容易实现 xff0c 只需要懂数据库的增删改查 xff0c 还有if else的条件语句即可做出来 目录 css Login Reg css s
  • ftp服务器无法使用浏览器访问解决方法

    浏览器默认工作在被动模式 可能你的环境无法让ftp服务器工作在主动模式 这个很容易测试 你在IE浏览器的工具 internet选项 高级中取消使用被动ftp的设置 xff0c 看看浏览器是否还可以访问ftp服务器 xff0c 如果访问不了
  • Python抓取糗事百科成人版图片

    最近开始学习爬虫 xff0c 一开始看的是静觅 的爬虫系列文章 xff0c 今天看到糗事百科成人版 xff0c 心里就邪恶了一下 xff0c 把图片都爬下来吧 xff0c 哈哈 虽然后来实现了 xff0c 但还是存在一些问题 xff0c 暂