Python爬取二次元肥宅最喜欢的壁纸图片,看过的都说爱了
前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答点击即可加入
文章插图
注:某憨批朋友发来的一个网址
文章插图
其实这个网站的壁纸 还是不错的嘛 , 果然是二次元肥宅的最爱~
文章插图
文章插图
文章插图
所以… 爬它
相关python开发工具
- Python 3.6
- Pycharm
import requestsimport parsel12
相关模块pip安装即可安装速度慢可以使用镜像源安装以前发过解决pip安装速度慢的问题
如何让python安装模块速度翻50倍
一、获取详情页url地址以及标题
文章插图
图片详情页是在 ul 标签里面的 li 标签下面的
文章插图
所以只需要请求网址 , 网站是静态页面可以直接获取网页数据 , 但是网页文字是乱码 , 转码即可 。。
关于动漫类一共是16页数据
'''# 第一页链接# 第二页链接# 第三页链接'''12345678
根据页码的改变对应的是第几页 。一般情况如果想要找到翻页的效果 , 是需要从第二页开始找的 。
上述是已经找到答案的情况 , 但是实际情况你第一页的url是有所不同的
实际上第一页url是没有页面参数的 , 只有到了第二页的时候才会有页码参数 , 然后你可以看第三页的url变化 , 就可以对比发现规则 , 然后根据规则拼接第一页的url地址 , 看是否也可以访问 , 如果可以 , 那么翻页规律就找到 , 如果不可以 , 那就要根据实际情况再作分析了 。
import requestsimport parselheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}for page in range(1, 17):url = '{}.html'.format(page)response = requests.get(url=url, headers=headers)selector = parsel.Selector(response.text)lis = selector.css('body > div:nth-child(7) > ul li')for li in lis:page_url = '' + li.css('a:nth-child(1)::attr(href)').get()title = li.css('a:nth-child(1) img::attr(alt)').get()1234567891011121314
二、获取壁纸原图地址文章插图
详情页中如果想要看下一张图片地址 , 则是需要点击下一张 , 下面也有其余壁纸的轮播
文章插图
通过开发者工具可以看到 , 10张图片壁纸的地址也都是在 li 标签里面的 , 复制链接看一下是否是原图
文章插图
果然不出意外 , 真的是缩略图 。
那就点击下载原图看一下 , 原图地址是什么样的 。
'''# 原图地址# li标签里面的地址'''123456
1、拼接url地址就可以了 + up/allimg/1114/110620113133/201106113133-1.jpg2、如果你可以自己试一下把 -lp 一样可以
def get_img(page_url, title):page_url_response = requests.get(url=page_url, headers=headers)page_url_response.encoding = page_url_response.apparent_encodingpage_url_selector = parsel.Selector(page_url_response.text)lis_2 = selector.css('#showImg li img::attr(src)').getall()for i in lis_2:# 原图壁纸地址## li标签壁纸地址#img_url = i.replace('-lp.jpg', '.jpg')img_title = title + img_url.split('-')[-1]123456789101112
三、保存壁纸图片保存没什么特别要说的 , 都是常规操作 , 固定写法了 。 图片、视频、音频都是二进制文件 , 用wb的方式写入就可以了 。def download(img_url, img_title):path = 'img\\' + img_titleimg_url_response = requests.get(url=img_url, headers=headers)with open(path, mode='wb') as f:f.write(img_url_response.content)print(img_url, img_title)123456
四、实现效果文章插图
文章插图
- 二维码|村网通?澳大利亚一州推出疫情追踪二维码 还考虑采用人脸识别和地理定位
- 敢动|女生最害怕被“偷看”的3软件,QQ不算啥,第二敢动就“翻脸”
- 建设|龙元建设中标中国移动宁波信息通信产业园二期施工项目
- 好消息|好消息!双十二实体店消费券已经开领
- 时代|时代成就了张一鸣
- Veeam|Veeam让企业数据拥有“第二次生命”
- 超级|特斯拉获准在柏林超级工厂所在地开始第二阶段的森林砍伐
- 航空工业|航空工业沈飞车工孙飞:二十载磨砺锋芒出
- 设置页面|QQ突然更新,加入了一项新功能,可以让你创建一个独一无二的QQID
- 技术|广东省电线电缆标准化技术委员会(第二届)成立