跳转到主内容
思享编程网:思考分享,玩转编程世界!

Python爬取二次元壁纸图片,手把手教你轻松搞定!

文章导读

大家好,我是陆砚码,今天要和大家分享的是如何使用Python爬取那些让人看了就心动的二次元壁纸图片。这篇文章会手把手教你如何实现,让你轻松成为爬虫小能手!

一、准备工作

首先,我们需要准备一些工具和环境:

  • Python 3.6
  • Pycharm(或其他Python开发环境)
  • requests库和parsel库

其中,requests库用于发送网络请求,parsel库用于解析HTML内容。你可以通过pip安装这些库,或者使用镜像源加速安装过程。

二、获取图片详情页URL和标题

首先,我们需要找到图片的详情页URL和标题。这些信息通常位于HTML的

    标签和
  • 标签中。

    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()
    

    三、获取壁纸原图地址

    在详情页中,我们可以通过点击“下一张”来查看下一张图片的地址。通过开发者工具,我们可以发现原图地址通常位于

  • 标签中。

    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:
            img_url = i.replace('-lp.jpg', '.jpg')
            img_title = title + img_url.split('-')[-1]
    

    四、保存壁纸图片

    保存图片的步骤非常简单,我们只需要将图片的二进制内容写入文件即可。

    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)
    

    五、总结与拓展

    通过以上步骤,我们已经成功地实现了爬取二次元壁纸图片的功能。当然,这只是一个简单的例子,实际应用中可能需要处理更多的复杂情况。如果你对Python爬虫感兴趣,可以关注思享编程网了解更多内容。

    我是陆砚码,感谢阅读!

相关文章