python中用urllib.retrieve下载网页图片时,由于权限问题不能下载

Python022

python中用urllib.retrieve下载网页图片时,由于权限问题不能下载,第1张

你是不是下载了要登录后才能看到的图片?可以试着加一下cookie

import cookielib

cj = cookielib.MozillaCookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

urllib2.install_opener(opener)

然后再添加user agent一起用试试看

你需要检查一下你的结果,看看是否请求成功了。可能服务器返回的并不是一个图片,但是你强制给他写入到图片格式文件中了,所以没办法显示。

你可以通过输出response或者使用抓包软件来检查。

一、在素材网想找到合适的需要一页一页往下翻,现在学会python就可以用程序把所有图片保存下来,慢慢挑选合适的。

二、

1、根据给定的网址获取网页源代码。

2、利用正则表达式把源代码中的素材地址过滤出来。

3、过滤出来的图片地址下载素材。

三、

1、网址如下:https://www.51miz.com/

2、涉及的库:requests、lxml

四、首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示:

https://www.51miz.com/so-sucai/1789243.html

https://www.51miz.com/so-sucai/1789243/p_2/

https://www.51miz.com/so-sucai/1789243/p_3/

我们可以发现图片页数是1789243/p{},p{}花括号数字表示图片哪一页。

五、

1、打开觅知网,在搜索中输入你想要的素材。2、根据上一步对网址的分析,首先我们定义一个类叫mageSpider,类里面定义初始化函数、发送请求获取响应数据函数、解析函数、主函数。首先初始化函数,准备url地址和headers,代码如下图所示。3、发送请求获取响应数据函数。4、解析数据,使用xpath获取二级页面链接,最后把素材存储在文件夹中。使用谷歌浏览器选择开发者工具或直接按F12,发现我们需要的素材src是在img标签下的,于是用Python的requests提取该组件。

六、运行程序,在控制台输入你要爬取的页数,在本地可以看到效果图。

转自P大s点