文中的文本及图片来自互联网,仅作学习培训、沟通交流应用,不具备一切商业行为,著作权归创作者全部,如有什么问题请立即在线留言以作解决

本文章内容来着腾讯云服务 创作者:python学习培训实例教程


注:某憨批盆友发过来的一个网站地址

实际上这一网址的墙纸 還是非常好的嘛,果真是二次元dnf死肥宅的最喜欢~



因此 … 爬它

有关python开发环境

  • Python 3.6
  • Pycharm
  • requests
  • parsel
    有关控制模块pip安装就可以

安裝速度比较慢能够应用镜像源安裝

之前发表处理pip安装速度比较慢的难题

一、获得宝贝详情url地址及其题目

照片宝贝详情是在 ul 标识里边的 li 标识下边的

因此 只必须要求网站地址,网址是静态网页能够立即获得网页页面数据信息,可是网页页面文本是错码,转换格式就可以。。

有关日本动漫类一共是16页数据信息

'''
# 第一页连接
http://www.jj20.com/bz/ktmh/list_16_cc_14_1.html
# 第二页连接
http://www.jj20.com/bz/ktmh/list_16_cc_14_2.html
# 第三页连接
http://www.jj20.com/bz/ktmh/list_16_cc_14_2.html
'''

依据页数的更改相匹配的是第几页。

一般状况假如要想寻找换页的实际效果,是必须从第二页刚开始找的。

所述是早已找到答案的状况,可是具体情况你第一页的url是各有不同的

http://www.jj20.com/bz/ktmh/list_16_cc_14.html

事实上第一页url是沒有网页页面主要参数的,仅有来到第二页的情况下才会出现页数主要参数,随后你能看第三页的url转变,就可以比照发觉标准,随后依据标准拼凑第一页的url地址,看是不是还可以浏览,假如能,那麼换页规律性就寻找,假如不能,那就需要依据具体情况再作剖析了。

import requests
import parsel

headers = {
    '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 = 'http://www.jj20.com/bz/ktmh/list_16_cc_14_{}.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 = 'http://www.jj20.com/'   li.css('a:nth-child(1)::attr(href)').get()
        title = li.css('a:nth-child(1) img::attr(alt)').get()

 

二、获得墙纸原照详细地址


宝贝详情中假如要想看下一张图片地址,则是必须点一下下一张,下边也是有其他墙纸的滚屏

根据微信开发工具能够见到,10张图片壁纸的详细地址也全是在 li 标识里边的,一键复制看一下是不是原照

果真可以的话,真的是缩列图。

那么就立即下载原照看一下,原照详细地址是哪些的。

'''
# 原照详细地址
http://cj.jj20.com/2020/down.html?picurl=/up/allimg/1114/110620113133/201106113133-1.jpg
# li标签里边的详细地址
http://img.jj20.com/up/allimg/1114/110620113133/201106113133-1-lp.jpg
'''

 

1、拼凑url地址就可以了

http://cj.jj20.com/2020/down.html?picurl=
up/allimg/1114/110620113133/201106113133-1.jpg

2、假如你能自身试一下把 -lp 一样能够

http://img.jj20.com/up/allimg/1114/110620113133/201106113133-1.jpg

def get_img(page_url, title):
    page_url_response = requests.get(url=page_url, headers=headers)
    page_url_response.encoding = page_url_response.apparent_encoding
    page_url_selector = parsel.Selector(page_url_response.text)
    lis_2 = selector.css('#showImg li img::attr(src)').getall()
    for i in lis_2:
        # 原照墙纸详细地址
        #  http://pic.jj20.com/up/allimg/1114/110620113133/201106113133-1.jpg
        # li标签墙纸详细地址
        # http://img.jj20.com/up/allimg/1114/110620113133/201106113133-1-lp.jpg
        img_url = i.replace('-lp.jpg', '.jpg')
        img_title = title   img_url.split('-')[-1]

 

三、储存手机壁纸图片

储存没有什么尤其说起的,全是基本实际操作,固定不动书写了。照片、视頻、声频全是二进制文件,用wb的方法载入就可以了。

def download(img_url, img_title):
    path = 'img\\'   img_title
    img_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)

 

四、完成实际效果



沒有爬完全部的,就爬了1000好几张,有点儿占地区,主要是演试一下。

文章来源于网络,如有侵权请联系站长QQ61910465删除
本文版权归趣快排SEO www.SeogurUblog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▶61910465