代码如下:

import urllib.request
import re
for i in range(1,2):url = "http://www.58pic.com/piccate/7-128-0-default-0_2_0_0_default_0-" + str(i) + ".html"data = urllib.request.urlopen(url).read().decode("utf-8","ignore")pat = '<a class="card-img video-play" target="_blank" href="(.*?)">'imgUrlList = re.compile(pat).findall(data)for j in range(0,len(imgUrlList)):imgPageData = urllib.request.urlopen(imgUrlList[j]).read().decode("utf-8","ignore")pat = 'src="(.*?)" class="show-area-pic"'imgUrl = re.search(pat,imgPageData).group(1)headers = { "Accept":"text/html,application/xhtml+xml,application/xml;","Accept-Encoding":"gzip, deflate, sdch","Accept-Language":"zh-CN,zh;q=0.8,en;q=0.6","Referer":imgUrlList[j],"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"}try:req = urllib.request.Request(url=imgUrl, headers=headers)response = urllib.request.urlopen(req).read()f = open("G:/py-code/day3/qiantuwang/" + str(i) + str(j) + ".jpg", "wb")f.write(response)f.close()print("第"+str(i)+"页第"+str(j)+"个图片爬取成功")except Exception as e:                       print("第"+str(i)+"页第"+str(j)+"失败")

遇到的问题:

  1. HTTP Error 403: Forbidden
  2. UnicodeEncodeError: 'latin-1' codec can't encode character '\u2026' in position 30
  3. 下载的图片打不开

解决方法:

1.1代理???

刚开始403的时候,以为是我设置的代理挂了,毕竟免费的代理嘛,时常不起作用 (▼ヘ▼#)

然后觉得这样不行呀,这不一定是代理的问题,也可能对方发现我这不是浏览器反爬虫呢!!于是先不使用代理,伪装下浏览器

1.2 伪装浏览器

通过headers来伪装成浏览器,之前写的小爬虫我都只用了"User-Agent"这一项,但在爬千图网过程中,发现只有这一项的话,还是被禁了,还需要加上"Referer"这一项!

"User-Agent"是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

"Referer"headers的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。(词条解释来自百度)

2.纯属没见过世面

遇到这个问题的时候,一脸惊奇,我是谁,我在哪,这真的是我写的?

百度后,才发现自己的愚蠢

我复制来的"User-Agent"中竟然有三个省略号...,修改一下就好啦

3.字符编码

出错原因是,新建文件存图片时,使用"w"进行打开,并把数据转成了str格式,发现本地不能打开。然后换了"wb"打开,取消转成str,正常打开!

话说,用str格式来存储图片,这操作也太让人窒息了吧。

总结:

哼,小小一个千图网竟然耗费我将近4个小时!!!不过最根本的原因还是我太蠢了啦,没经验。但好在废了九牛二虎之力后,还是被我爬到啦!

python爬千图网高清图片相关推荐

  1. Xpath-彼岸图网高清图片获取

    Xpath-彼岸图网高清图片获取 目标网站:彼岸图网 首先导入所需包 import os import timeimport requests from lxml import etree 做好伪装( ...

  2. 【python--爬虫】千图网高清背景图片爬虫

    最近有读者反映想要下载千图网的高清背景图片,但是需要会员才能下载,而且需要的量非常大,问博主有没有办法能免费下载这些图片. 付费,不存在的o( ̄▽ ̄)o!,博主今天讲解如何通过python爬取千图网的 ...

  3. 【python--爬虫】千图网高清背景图片

    爬取的网页是:千图网背景图片模块 查看背景图片的网页代码(右键–>[查看元素]/f12 / fn + f12) url链接[www.58pic.com/newpic/33945157.html] ...

  4. 【Python爬虫实战】爬取彼岸图库高清图片

    利用Python爬取彼岸图库高清图片 让你每天一张壁纸不重样,今天利用Python爬取 彼岸图库 http://pic.netbian.com/ 分析网页 通过首页可以看到要获取全站图片必须先抓取各个 ...

  5. python 爬取王者荣耀高清壁纸

    代码地址如下: http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  6. 小白请上车 | Python抓取花瓣网高清美图

    一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网-- 花瓣 ,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑 ...

  7. Python抓取花瓣网高清美图

    一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网--花瓣,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑中. ...

  8. python花瓣飘零_小白请上车 | Python抓取花瓣网高清美图

    一:前言 嘀嘀嘀,上车请刷卡.昨天看到了不错的图片分享网-- 花瓣 ,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文件夹命名分类保存到电脑 ...

  9. python爬取某网站高清二次元图片 自动下载

    第一章 Python 爬取网站信息 文章目录 一,什么是爬虫? 二.使用步骤 1.引入库 2.伪装header 3.读取信息并过滤,写入文件 总结 前言 本文只做技术讨论,大家不要一直爬这个小网站,记 ...

最新文章

  1. python之⾯向对象-继承
  2. win 2008 控制共享文件夹大小_Windows转Mac Win10局域网文件共享设置
  3. radware Alten系列的HA配置
  4. php面向对象引用文件,PHP面向对象之对象和引用
  5. event对象获取方法
  6. NA-NP-IE系列实验28:HDLC 和PPP 封装
  7. 文献阅读:知识图谱数据管理研究综述
  8. gitee图床不能用了,心态崩了
  9. windows下使用kafka
  10. 希赛软考学习包,助您快通过软考考试
  11. 制作dnf脚本Java_易语言制作DNF解封源码
  12. CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0
  13. 手把手教你用Python分析微信聊天内容
  14. Solr配置中文的分词器-简单配置
  15. Java应用编程_常用类库汇总2(日期类正则表达式国际化程序)
  16. 联想服务器重装系统按f几,联想笔记本电脑重装系统按F几
  17. wait和notify基本原理以及应用场景
  18. 复盘,一个纸巾机创业项目是怎么失败的
  19. SVN与GIT两大版本管理工具
  20. Install OIM9.1.0.1 on RHEL5.4

热门文章

  1. 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)
  2. maximo工作笔记
  3. .shtml网站解析UnicodeError
  4. 购房指南—新房交房注意事项细节有哪些
  5. vue计算本周是今年的第几周
  6. stm32使用XR20M1172详细攻略·SPI转UART串口
  7. CVTE校招嵌入式经历
  8. 实时数据库历史数据容量的计算方法
  9. 产品运输和使用振动环境的分类
  10. 什么是php微信开发,php微信公众号开发模式详解