import requests

import os, sys, stat

from lxml import etree

import time

class HuangMan():

def __init__(self):

#设置请求头

self.headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'}

self.url_list = []

self.Hman_url_list = []

self.Hman_name_list = []

def get_url_list(self):

#这里是设置爬取到第3页,想要更多的话请自行更改

url = "http://www.93qoqo.com/artlist/27-%d.html"

for i in range(2,4):

#获取第2到3页的url

self.url_list.append(url % i)

#由于第一页网址不同,所以单独写一个获取函数

def start_1(self):

url_1 = "http://www.93qoqo.com/artlist/27.html"

response = requests.get(url_1, headers = self.headers).content.decode('utf-8')

html = etree.HTML(response)

result = html.xpath('//ul/li[@class="name"]/a')

for i in range(len(result)):

#获取result的属性

shuxing = result[i].attrib

#获取url

self.Hman_url_list.append("http://www.93qoqo.com" + shuxing.get('href'))

#获取名字

self.Hman_name_list.append(shuxing.get('title'))

print("正在爬取第1页的网站信息")

time.sleep(2)

#从第二页开始爬取信息

def start(self):

self.start_1()

self.get_url_list()

for url in self.url_list:

response = requests.get(url, headers = self.headers).content.decode('utf-8')

html = etree.HTML(response)

result = html.xpath('//ul/li[@class="name"]/a')

for i in range(len(result)):

#获取result的属性

shuxing = result[i].attrib

#获取url

self.Hman_url_list.append("http://www.93qoqo.com" + shuxing.get('href'))

#获取名字

self.Hman_name_list.append(result[i].text)

print("正在爬取第%d页的网站信息" % (self.url_list.index(url) + 2))

time.sleep(2)

self.wenjian()

self.main()

def wenjian(self):

#创建文件夹

if os.path.exists("photo") == False:

os.makedirs("photo")

os.chmod("photo", stat.S_IWRITE)

os.chdir("photo")

else:

print("文件已经存在")

def main(self):

for url in self.Hman_url_list:

response = requests.get(url, headers = self.headers).content.decode('utf-8')

html = etree.HTML(response)

result = html.xpath('//center/div[@class="t_msgfont"]/img')

print(self.Hman_name_list[self.Hman_url_list.index(url)])

for i in range(len(self.Hman_name_list)):

#创建次级文件夹用于存放图片

f = os.makedirs(self.Hman_name_list[i])

os.chmod(self.Hman_name_list[i], stat.S_IWRITE)

print("正在创建文件夹")

for e in range(len(result)):

print("下载图片中。。。请稍等片刻")

name ="%d.jpg" % e

#请求图片

respomse=requests.get(url,headers=self.headers)

#下载

with open(os.path.join(self.Hman_name_list[i],name),mode='wb') as f:

f.write(respomse.content)

if __name__ == "__main__":

h = HuangMan()

h.start()

python 下载图片损坏_爬虫爬取出的图片下载出错,图片文件直接损坏相关推荐

  1. python爬虫网页中的图片_Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request. ...

  2. Python爬虫-爬取快看漫画网图片并拼接成漫画长图

    Python爬虫-爬取快看漫画网图片并拼接成漫画长图 1.爬取图片 2.拼接图片 1.爬取图片 import os import requests from bs4 import BeautifulS ...

  3. python批量下载静态页面_爬虫实战之,爬取壁纸,批量下载

    一.前言 在开始写爬虫之前,我们先了解一下爬虫 首先,我们需要知道爬虫是什么,这里直接引用百度百科的定义 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按 ...

  4. python爬虫详解(四)——使用爬虫爬取你想要的图片 类似于图片下载器【百度引擎】

    这个爬虫用的是百度引擎,后续需要爬取别的网站需要自行更改 点个赞留个关注吧!! 我们废话不多说,上代码: # -*- coding: utf-8 -*- import re import reques ...

  5. python爬虫爬图片教程_Python爬虫爬图片需要什么

    Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...

  6. python爬取豆瓣短评_爬虫-爬取豆瓣短评

    爬虫-爬取豆瓣短评 啥是爬虫? ​按照一定的规则,自动地抓取互联网信息的程序. 为啥要用爬虫? ​可以利用爬虫自动地采集互联网中的信息,采集回来后进行相应的存储或处理,在需要检索某些信息的时候,只需在 ...

  7. 爬虫python下载网站所有图片_python爬虫(4):多页图片批量下载-澎湃网信息图...

    澎湃网文章的质量不错,它的"美数课"栏目的信息图做得也很好.图片干货多还能带来ppt和图表制作的技巧.为了更方便浏览所有文章图片,通过分析Ajax爬取栏目至今所有信息图的图片. 但 ...

  8. python 爬虫代码_python之路(一)_爬虫—爬一下网页代码输出到文件

    在上次公众号中讲到要用python进行开发,所以又拾起来了python.这不,从爬虫进行入门熟悉一下.爬虫是个啥呢?简单说:就是你想高效地从网上获取一些信息,而不用鼠标点点点.官方解释:网络爬虫(又称 ...

  9. python爬虫爬取慕课网中的图片

    我们简单地爬取慕课网中免费课程下的第一页的图片,如想爬取多页图片,可以添加for循环自行实现 python版本:3.6.5 爬取网址:http://www.imooc.com/course/list ...

最新文章

  1. CISCO 3550交换机配置DHCP三步骤
  2. Login failed with an access denied error.
  3. 如何使用sed在文件中确定行插入带有变量的字符串
  4. windows XP安装配置Perl Apache
  5. 【pmcaff】凯文-凯利:最大颠覆来自创业公司与边缘产业
  6. li 字多出了省略号_文字溢出自动显示省略号css方法 -
  7. [渝粤教育] 中国地质大学 面向对象程序设计 复习题 (2)
  8. 分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的十个词打印出来...
  9. python字典类型可迭代_核心数据类型--字典
  10. 表主键自增长Mybatis插入数据报错
  11. UITableView介绍 之 复杂cell的高度计算
  12. java.lang.RuntimeException: Package manager has died
  13. 联想7400打印机如何与手机连到一起_激光打印机与喷墨打印机,哪个使用成本更低?...
  14. Win10桌面美化:推荐2款高质量桌面美化工具,值得收藏
  15. 知识| 四种渲染到底是啥?终于有人讲明白了(上)
  16. 利用html简单自我介绍案例
  17. css3 烟 蚊香_如何使用纯CSS实现蚊香燃烧的效果(附源码)
  18. C#读写修改设置调整UVC摄像头画面-伽玛
  19. 灰色系统GM(1,1)模型预测实例
  20. adams中对槽口、凸轮等进行约束

热门文章

  1. (转载)Android进阶2之Activity之间数据交流(onActivityResult的用法)
  2. tomcat启动不了,报java.lang.Exception: Socket bind failed: [730013] ???
  3. 字符串(strcmp)
  4. error while loading shared libraries: libmysql....
  5. PWM波形的simulink仿真
  6. OpenGL:ImGUI在GLFW库和GLAD/GLEW库的环境下使用
  7. Ubuntu/Deepin--How to remove packeges?
  8. Xshell更改命令提示符以及背景配色
  9. 笔记3——C++类的一些特性
  10. 144显示器只有60_HKC IG27电竞显示器体验:27英寸+IPS+144Hz,千元平民价值不值?...