python 爬虫爬取百度贴吧图片 urllib.request.urlretrieve图片批量下载函数

每天一点点,记录学习琐事

近期爬虫项目,看完请点赞哦~~~~:

1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载

2:python爬虫爬取百度贴吧图片,requests方法

3:python 爬虫爬取百度贴吧图片 urllib.request.urlretrieve图片批量下载函数

4:没有保存到mysql数据库中这个操作
爬取猫眼电影数据并保存到mysql数据库
python 爬虫爬取百度贴吧美图图片,urllib.request.urlretrieve图片批量下载函数

百度贴吧美图网址:https://tieba.baidu.com/p/5815297430

思路:1:每次最多发3张图片,一张页面有35张图片;
2:在页面上的图片,右键,检查,可以看到每张图片存储的方式及位置 img中的src,用xpath方法进行抓取:
在这里插入图片描述
这3个jpg格式的就是三张图片的存储,可以双击复制出该url至新的窗口,可以看到,确实是图片的内容;
3:找到head中的meta,转码utf-8

data = response.read().decode('utf-8') 

在这里插入图片描述
4:img标签,class="BDE_Image"可以输出唯一值,再取src即可取到每张图片的链接

img = html.xpath('//img[@class="BDE_Image"]/@src')

在这里插入图片描述
5:存储图片:批量图片下载函数
urlretrieve(图片url,存储路径+图片名字)

 urllib.request.urlretrieve(i,filename = '/Users/你的路径/百度贴吧图片批量下载/{}.jpg'.format(a))
 #注意:mac路径是/,最后要在{}前边记得加上一个/(为啥?自己看看你的文件储存就明白了);wins路径记得在前边加  r‘路径’

整体代码,拿来直接可用:

#批量下载图片
import urllib.request
from lxml import etree
url = 'https://tieba.baidu.com/p/5815297430'
response = urllib.request.urlopen(url)
data = response.read().decode('utf-8') 

#xpath解析
html = etree.HTML(data)
img = html.xpath('//img[@class="BDE_Image"]/@src')

#下载图片
a = 1
for i in img:
    urllib.request.urlretrieve(i,filename = '/Users/你自己路径/百度贴吧图片批量下载/{}.jpg'.format(a))
    print('第%d张图片已下载完成'%a)
    a+=1

这样就可以把整个页面上的图片全部下载下来了,再用requests方法解一次,链接参见:requests爬虫爬取百度贴吧美图

发布了124 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/YmeBtc/article/details/102419475
今日推荐