目标网站 https://divnil.com

1、先去主页面获取每个图片的详细页面的链接

这链接还是比较好获取的,直接 F12 审核元素,或者右键查看代码,手机上chrome和firefox在url前面加上 “view-source”

比如:

view-source:https://www.baidu.com/


2、从详细页面获取图片大图地址
随便打开一个图片详细页面,接着按 F12 审核元素,我们需要定位该图片的链接,首先单击左上角的这玩意儿,像一个鼠标的图标,接着只需要单击网页上的图片就能定位到代码了:

3、用大图地址下载该图片

这个很简单,看代码
先安装 Requests 和 BeautifulSoup 库

pip install requests bs4

导入库

import requestsfrom bs4 import BeautifulSoupimport sys

请求获取网页源代码

url = "https://divnil.com/wallpaper/iphone8/%E3%82%A2%E3%83%8B%E3%83%A1%E3%81%AE%E5%A3%81%E7%B4%99_2.html"
headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0",
}
resp = requests.get(url, headers=headers)
if resp.status_code != requests.codes.OK:
print("Request Error, Code: %d"% resp.status_code)
sys.exit()

然后解析出所有图片的详细地址

soup = BeautifulSoup(resp.text, "html.parser")
contents = soup.findAll("div", id="contents")[0]
wallpapers = contents.findAll("a", rel="wallpaper")
links = []
for wallpaper in wallpapers:links.append(wallpaper['href'])

接着在详细网页里获取那个看似高清的图片的不确定是否为真实图片链接并下载(/滑稽)

import oshead = "https://divnil.com/wallpaper/iphone8/"
if os.path.exists("./Divnil") != True:os.mkdir("./Divnil")for url in links:url = head + urlresp = requests.get(url, headers=headers)if  resp.status_code != requests.codes.OK:print("URL: %s REQUESTS ERROR. CODE: %d" % (url, resp.status_code))continuesoup = BeautifulSoup(resp.text, "html.parser")img =  soup.find("div", id="contents").contents.find("img", id="main_content")img_url = head + img['"original'].replace("../", "")img_name = img['alt']print("start download %s ..." % img_url)resp = requests.get(img_url, headers=headers)if resp.status_code != requests.codes.OK:print("IMAGE %s DOWNLOAD FAILED." % img_name)with open("./Divnil/" + img_name + ".jpg", "wb") as f:f.write(resp.content)


贴上所有代码

import requests
from bs4 import BeautifulSoup
import sys
import os
'''
更多Python学习资料以及源码教程资料,可以在群1136201545免费获取
'''class Divnil:def __init__(self):self.url = "https://divnil.com/wallpaper/iphone8/%E3%82%A2%E3%83%8B%E3%83%A1%E3%81%AE%E5%A3%81%E7%B4%99.html"self.head = "https://divnil.com/wallpaper/iphone8/"self.headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0",}def getImageInfoUrl(self):resp = requests.get(self.url, headers=self.headers)if resp.status_code != requests.codes.OK:print("Request Error, Code: %d"% resp.status_code)sys.exit()soup = BeautifulSoup(resp.text, "html.parser")contents = soup.find("div", id="contents")wallpapers = contents.findAll("a", rel="wallpaper")self.links = []for wallpaper in wallpapers:self.links.append(wallpaper['href'])def downloadImage(self):if os.path.exists("./Divnil") != True:os.mkdir("./Divnil")for url in self.links:url = self.head + urlresp = requests.get(url, headers=self.headers)if  resp.status_code != requests.codes.OK:print("URL: %s REQUESTS ERROR. CODE: %d" % (url, resp.status_code))continuesoup = BeautifulSoup(resp.text, "html.parser")img = soup.find("div", id="contents").find("img", id="main_content")img_url = self.head + img['original'].replace("../", "")img_name = img['alt']print("start download %s ..." % img_url)resp = requests.get(img_url, headers=self.headers)if resp.status_code != requests.codes.OK:print("IMAGE %s DOWNLOAD FAILED." % img_name)continueif '/' in img_name:img_name = img_name.split('/')[1]with open("./Divnil/" + img_name + ".jpg", "wb") as f:f.write(resp.content)def main(self):self.getImageInfoUrl()self.downloadImage()if __name__ == "__main__":divnil = Divnil()divnil.main()

学会python爬虫,这简直就是二次元宅男的福利相关推荐

  1. 5分钟学会Python爬虫神器autoscraper——自动化爬虫必备

    5分钟学会Python爬虫神器autoscraper--自动化爬虫必备 爬虫神器autoscraper介绍 安装 使用 批量抓取 查看结果 爬虫神器autoscraper介绍 今天给大家介绍一个非常智 ...

  2. 学会python爬虫怎么赚钱-学会python爬虫怎么赚钱

    Python爬虫如此的神奇,那我们不禁要问关键的一点,用它怎么赚钱. 最典型的就是找爬虫外包活儿. 这个真是体力活,最早是在国外各个freelancer网站上找适合个人做的小项目,看见了就赶紧去bid ...

  3. 学会python爬虫怎么赚钱-学会Python爬虫能赚大钱吗?Python爬虫赚钱渠道分享

    学会Python爬虫能赚大钱吗?首先大家要明白这个只是作为一个技术兼职,赚点外快,肯定不比程序员全职工作的工资高.其次赚的多少还要看大家赚钱的渠道.下面小编就和大家分享一下,Python爬虫赚钱渠道, ...

  4. 要学会Python爬虫都需要什么基础呢?

    提到Python自然就会想到爬虫,很多同学学习Python的目的也是为了使用爬虫,那么你知道想要学会Python爬虫都需要什么基础吗?下面小千就来告诉你. 学Python爬虫需要掌握的基础 1.Pyt ...

  5. 视频教程-手把手带你学会python爬虫-Python

    手把手带你学会python爬虫 曾在某大型公司大型互联网任职多年,在公司主要从事移动端开发.全栈开发.主要技术栈是Android.Java.Python.爬虫.Linux等等. 赵庆元 ¥99.00 ...

  6. 学会Python爬虫能赚大钱吗?Python爬虫赚钱渠道分享

    学会Python爬虫能赚大钱吗?首先大家要明白这个只是作为一个技术兼职,赚点外快,肯定不比程序员全职工作的工资高.其次赚的多少还要看大家赚钱的渠道.下面小编就和大家分享一下,Python爬虫赚钱渠道, ...

  7. 一键服务端是什么意思_一键消除马赛克和圣光?这类软件能否在未来成为二次元宅男的福音...

    导读:看到一个有意思的话题,这里也分享给大家.主要介绍了一款关于一键消除马赛克和圣光的软件,如果有实际效果的话,可以说解决了很多人心中的"难题".这类软件,能否在未来成为二次元宅男 ...

  8. 小程序源码:宅男必备福利壁纸大全自动采集微信小程序

    这是一款可以说是宅男的最爱 也可以说是专门给宅男准备的一款小程序吧 里面支持动态视频,静态壁纸,情侣头像等多种分类 保存内容支持每天激励视频解锁保存 全内容自动采集,内附含了数不清的小姐姐,二次元,各 ...

  9. 学会python爬虫能发财么_python如何赚钱? python爬虫如何进阶? python就业? 如何快速入门python?...

    1.如何快速入门 Python ? 我之前给大家说过,速成一门技能是不可能的,你需要花很多时间才能真正的掌握一门技能,但是快速入门是有可能的,而且也是必要的,你需要掌握最少且最必要的知识点,先进门再说 ...

最新文章

  1. java 显示c控制台程序窗口,Windows-如何清除C中的控制台屏幕?
  2. ASP.NET MVC Bundles 用法和说明(打包javascript和css)
  3. android 实现定时通知,在Android中创建定时通知(例如,针对事件)
  4. 开发机多用户 xdebug 远程调试 PhpStorm
  5. php三个表格,phpspreadsheet-excel工作表中有多个“格式为表”的表
  6. 用户名和密码都正确,无法直接登陆虚拟机上的linux
  7. ES6 Promise - 让我们解开的面纱(遵循Promise/A+规范)
  8. 廖雪峰Python教程学习笔记
  9. egret农场游戏源码
  10. JAVA一元线性回归法_一元线性回归的java实现
  11. 基于深度图像的行人检测、跟踪技术研究_周波_2014
  12. 外贸企业邮箱域名怎么注册?企业邮箱申请域名流程?
  13. 相见恨晚的编程学习词典!谁还不是南极滑冰的那个崽儿?!
  14. POM 标签大全详解
  15. hardfault常见原因_stm32 HardFault_Handler调试及问题查找方法
  16. 获取和设置默认打印机
  17. 圣诞树拼图游戏unity制作
  18. 二极管钳位、稳压二极管的应用
  19. 别让你的mongodb宕机了
  20. turtle.write方法使用说明

热门文章

  1. 台式电脑win7旗舰版 怎么调节屏幕亮度 显示器太亮了!
  2. vue element-ui引入第三方图标 在线版
  3. session_unset和session_distory
  4. Android studio 模拟器启动黑屏解决办法
  5. 新必应 new bing【NB】这不比知云翻译香
  6. android7.1.1彩蛋魅族,魅族PRO 6 Android 7.1.1尝鲜, 一功能很“原生”
  7. 使用navicat进行库表数据拷贝
  8. AtCoder Beginner Contest 266(C- G)「判凸包」「dp」「期望」「基环树」「组合数」
  9. C语言控制台程序添加图标(基于GCC编译器)
  10. 简述css选择器的四种类型,CSS选择器的类型,css,种类