前言

夏天已经接近尾声了,虽然各种大白腿会少了很多,但是会冒出很多各种黑色的大长腿哇!尤其是黑色的,黑丝才是永远滴神!今天带你们大饱眼福一波!

一、技术路线

requests:网页请求
BeautifulSoup:解析html网页
re:正则表达式,提取html网页信息
os:保存文件

import re
import requests
import os
from bs4 import BeautifulSoup

二、获取网页信息

获取网页信息的固定格式,返回的字符串格式的网页内容,其中headers参数可模拟人为的操作,‘欺骗’网站不被发现

def getHtml(url):  #固定格式,获取html内容headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}  #模拟用户操作try:r = requests.get(url, headers=headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:print('网络状态错误')

三、网页爬取分析

右键单击图片区域,选择 审查元素 ,可以查看当前网页图片详情链接,我就满心欢喜的复制链接打开保存,看看效果,结果一张图片只有60几kb,这就是缩略图啊,不清晰,果断舍弃。。。

没有办法,只有点击找到详情页链接,再进行单独爬取。

空白右键,查看页面源代码,把刚刚复制的缩略图链接复制查找快速定位,分析所有图片详情页链接存在div标签,并且class=‘list’ 唯一,因此可以使用BeautifulSoup提取此标签。并且发现图片详情页链接在herf=后面(同时我们注意到有部分无效链接也在div标签中,观察它们异同,发现无效链接存在'https'字样,因此可在代码中依据此排出无效链接,对应第4条中的函数代码),只需提取出来再在前面加上网页首页链接即可打开,并且右键图片,‘审查元素’,复制链接下载的图片接近1M,表示是高清图片了,到这一步我们只需调用下载保存函数即可保存图片

四、网页详情页链接获取

首要目标是将每页的每个图片的详情页链接给爬取下来,为后续的高清图片爬取做准备,这里直接使用定义函数def getUrlList(url)

def getUrlList(url):  # 获取图片链接url_list = []  #存储每张图片的url,用于后续内容爬取demo = getHtml(url)soup = BeautifulSoup(demo,'html.parser')sp = soup.find_all('div', class_="list") #class='list'在全文唯一,因此作为锚,获取唯一的div标签;注意,这里的网页源代码是class,但是python为了和class(类)做区分,在最后面添加了_nls = re.findall(r'a href="(.*?)" rel="external nofollow"  rel="external nofollow" ', str(sp)) #用正则表达式提取链接for i in nls:if 'https' in i: #因所有无效链接中均含有'https'字符串,因此直接剔除无效链接(对应第3条的分析)continueurl_list.append('http://www.netbian.com' + i) #在获取的链接中添加前缀,形成完整的有效链接return url_list

五、依据图片链接保存图片

通过上面获取了每个图片的详情页链接后,打开,右键图片审查元素,复制链接即可快速定位,然后保存图片

def fillPic(url,page):pic_url = getUrlList(url) #调用函数,获取当前页的所有图片详情页链接path = './美女'  # 保存路径for p in range(len(pic_url)):pic = getHtml(pic_url[p])soup = BeautifulSoup(pic, 'html.parser')psoup = soup.find('div', class_="pic") #class_="pic"作为锚,获取唯一div标签;注意,这里的网页源代码是class,但是python为了和class(类)做区分,在最后面添加了_picUrl = re.findall(r'src="(.*?)"', str(psoup))[0] #利用正则表达式获取详情图片链接,因为这里返回的是列表形式,所以取第一个元素(只有一个元素,就不用遍历的方式了)pic = requests.get(picUrl).content #打开图片链接,并以二进制形式返回(图片,声音,视频等要以二进制形式打开)image_name ='美女' + '第{}页'.format(page) + str(p+1) + '.jpg' #给图片预定名字image_path = path + '/' + image_name #定义图片保存的地址with open(image_path, 'wb') as f: #保存图片f.write(pic)print(image_name, '下载完毕!!!')

六、main()函数

经过前面的主体框架搭建完毕之后,对整个程序做一个前置化,直接上代码

在这里第1页的链接是
www.netbian.com/meinv/

第2页的链接是
www.netbian.com/meinv/index…

并且后续页面是在第2页的基础上仅改变最后的数字,因此在写代码的时候要注意区分第1页和后续页面的链接,分别做处理;同时在main()函数还增加了自定义爬取页数的功能,详见代码


def main(): n = input('请输入要爬取的页数:') url = 'http://www.netbian.com/meinv/' # 资源的首页,可根据自己的需求查看不同分类,自定义改变目录,爬取相应资源 if not os.path.exists('./美女'): # 如果不存在,创建文件目录 os.mkdir('./美女/') page = 1 fillPic(url, page) # 爬取第一页,因为第1页和后续页的链接的区别,单独处理第一页的爬取 if int(n) >= 2: #爬取第2页之后的资源 ls = list(range(2, 1 + int(n))) url = 'http://www.netbian.com/meinv/' for i in ls: #用遍历的方法对输入的需求爬取的页面做分别爬取处理 page = str(i) url_page = 'http://www.netbian.com/meinv/' url_page += 'index_' + page + '.htm' #获取第2页后的每页的详情链接 fillPic(url, page) #调用fillPic()函数

七、完整代码

最后再调用main(),输入需要爬取的页数,即可开始爬取,完整代码如下

import re
import requests
import os
from bs4 import BeautifulSoupdef getHtml(url):  #固定格式,获取html内容headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}  #模拟用户操作try:r = requests.get(url, headers=headers)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:print('网络状态错误')def getUrlList(url):  # 获取图片链接url_list = []  #存储每张图片的url,用于后续内容爬取demo = getHtml(url)soup = BeautifulSoup(demo,'html.parser')sp = soup.find_all('div', class_="list") #class='list'在全文唯一,因此作为锚,获取唯一的div标签;注意,这里的网页源代码是class,但是python为了和class(类)做区分,在最后面添加了_nls = re.findall(r'a href="(.*?)" rel="external nofollow"  rel="external nofollow" ', str(sp)) #用正则表达式提取链接for i in nls:if 'https' in i: #因所有无效链接中均含有'https'字符串,因此直接剔除无效链接(对应第3条的分析)continueurl_list.append('http://www.netbian.com' + i) #在获取的链接中添加前缀,形成完整的有效链接return url_listdef fillPic(url,page):pic_url = getUrlList(url) #调用函数,获取当前页的所有图片详情页链接path = './美女'  # 保存路径for p in range(len(pic_url)):pic = getHtml(pic_url[p])soup = BeautifulSoup(pic, 'html.parser')psoup = soup.find('div', class_="pic") #class_="pic"作为锚,获取唯一div标签;注意,这里的网页源代码是class,但是python为了和class(类)做区分,在最后面添加了_picUrl = re.findall(r'src="(.*?)"', str(psoup))[0] #利用正则表达式获取详情图片链接,因为这里返回的是列表形式,所以取第一个元素(只有一个元素,就不用遍历的方式了)pic = requests.get(picUrl).content #打开图片链接,并以二进制形式返回(图片,声音,视频等要以二进制形式打开)image_name ='美女' + '第{}页'.format(page) + str(p+1) + '.jpg' #给图片预定名字image_path = path + '/' + image_name #定义图片保存的地址with open(image_path, 'wb') as f: #保存图片f.write(pic)print(image_name, '下载完毕!!!')def main():n = input('请输入要爬取的页数:')url = 'http://www.netbian.com/meinv/'  # 资源的首页,可根据自己的需求查看不同分类,自定义改变目录,爬取相应资源if not os.path.exists('./美女'):  # 如果不存在,创建文件目录os.mkdir('./美女/')page = 1fillPic(url, page)  # 爬取第一页,因为第1页和后续页的链接的区别,单独处理第一页的爬取if int(n) >= 2: #爬取第2页之后的资源ls = list(range(2, 1 + int(n)))url = 'http://www.netbian.com/meinv/'for i in ls: #用遍历的方法对输入的需求爬取的页面做分别爬取处理page = str(i)url_page = 'http://www.netbian.com/meinv/'url_page += 'index_' + page + '.htm' #获取第2页后的每页的详情链接fillPic(url_page, page) #调用fillPic()函数main()
复制代码

①兼职交流,行业咨询、大佬在线专业解答
②Python开发环境安装教程
③Python400集自学视频
④软件开发常用词汇
⑤Python学习路线图
⑥3000多本Python电子书

我的QQ技术交流群里群号:948351247如果你用得到的话可以直接拿走,点击领取。

黑丝YYDS,通过五十行代码分分钟下载上万张黑丝小姐姐纯欲高清图!(宅男福利)相关推荐

  1. 真厉害用python只要50行代码爬取黑丝美眉纯欲高清图

    要说最美好的欲望莫过于看黑丝美眉. 一.技术路线 requests:网页请求 BeautifulSoup:解析html网页 re:正则表达式,提取html网页信息 os:保存文件 import re ...

  2. 五十行代码能否笼络女人的心?

    2010-04-19 17:09:19        五十行代码能否笼络一位女人的心?谈到这个话题感觉很幼稚,不过对于我们来说很现实.     身在大学的我们除了学习就是生活了,但是生活中却有一件让很 ...

  3. ​50行Python代码爬取黑丝美眉高清图

    一.技术路线 requests:网页请求 BeautifulSoup:解析html网页 re:正则表达式,提取html网页信息 os:保存文件 import reimport requests imp ...

  4. 宅男福利!我50行Python代码让小姐姐给你读Pdf

    最近小编忙着给项目做文档,需要阅读大量的文献资料,长时间的阅读让本就不喜欢看书的我是又困又乏,所以想着,要是能有小姐姐在旁边读给我听该有多好. 说干就干,小编整理了一下思路,晚上熬夜花了几个小时就完成 ...

  5. char添加一个字符_给你五十行代码把图片变成字符画!程序:太多了,一半都用不完...

    今天和大家分享一个简单又好玩的Python项目–"图片转字符画".废话不多说,先上一个效果图迷惑一下众生. 没错的,图片转字符画就是将我们平常所看到的的图片根据像素RGB值和灰度值 ...

  6. python五十行代码获取很多很多个好看图片

    下载一个图片网址的主要函数,请求头的话可以根据不同的网址跟换相应的Cookie 啥的,截取文件名称可能也许要对应的修改下. # 下载图片 def download_img(img_url):heade ...

  7. html2canvas源码修改,html2canvas把div保存高清图的方法代码

    http://www.bootcdn.cn/(可以搜索html2canvans) 1.选择html2canvas版本(这个版本可以放大倍数保证图片清晰) 默认生成的canvas图片在retina设备上 ...

  8. GAN能合成2k高清图了!还能手动改细节 | 论文+代码,英伟达出品

    夏乙 安妮 编译整理 量子位 出品 | 公众号 QbitAI 输入一张语义地图-- 就能为你还原整个世界. 输入一张亲妈都认不出来的语义标注图-- 为你合成一张真实的人脸. 聪明的你可能已经发现,这个 ...

  9. 为了营造一个看代码舒服的氛围,写了获取王者荣耀所有高清皮肤的代码,现在写代码舒心了(中途发现了一个秘密)

    自从发现了该海报,我沦陷了

  10. python对话机器人怎么搭建代码语言库_教你用python几十行代码编写对话机器人

    教你用python几十行代码编写对话机器人 最近闲来无事,就自己写点代码弄了一个对话机器人.当然,这个机器人是基于图灵机器人这个平台的接口的,因为对于我这个小白来说自己编写一个机器人代码还是颇有难度啊 ...

最新文章

  1. rabbitmq python 消费者_菜鸟世界 -RabbitMQ---消费者示例
  2. 【scratch】实用作品方案:微信抽奖机,Scratch编程教育作品
  3. 炼丹侠必知的9大池化操作​汇总
  4. linux监测node进程,通过node_exporter监控linux服务器一
  5. mac玩rust用什么画质_Mac上的活动监视器到底有什么用?你会用么?
  6. 政府安全资讯精选 2017年第十三期 网信办发布《互联网新闻信息服务新技术新应用安全评估管理规定》;Facebook颁布新广告政策,加强内容安全...
  7. python 爬虫难吗_python写爬虫难吗
  8. Android 11 存储权限适配指南
  9. 【代码规范】阿里巴巴代码规范
  10. python导入鸢尾花数据集_python KNN算法实现鸢尾花数据集分类
  11. 超酷计算机病毒,世界上十种最强的计算机病毒,最著名的计算机病毒都在这里!...
  12. 北京驾驶证到期了怎么换证?
  13. DSP 基础学习 1:搭建环境与CCS6创建工程模板
  14. excel怎么一个格子斜分_表格excel怎样把一格用斜线分为三格
  15. ngx_thread_pool_init()
  16. 手把手教你如何做自媒体赚钱,揭开自媒体赚钱真相!记得收藏
  17. Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not suppor
  18. Hadoop中怎么解决Starting secondary namenodes [0.0.0.0]
  19. 【推免】保研记(东华计院+吉大软院+东北计院+东南计院+浙大软院+川大计院+上科信院)
  20. 算法题目--找出第一个出现两次的字符。

热门文章

  1. 大型分布式网站术语分析
  2. 微端服务器物品备注,HeroM2引擎怎么在装备上添加备注 传奇添加物品备注说明的方法...
  3. JavaScript高级教程(函数进阶、闭包、正则表达式、ES6新增语法、新增扩展方法)
  4. Java-----exe
  5. 个人博客系统(附源码)
  6. 染色问题 —— 扇形涂色
  7. 用python实现2048小游戏
  8. 软件测试设计测试用例案例
  9. idea 社区教育版需要安装的插件
  10. 安装net framework2.0,装不上怎么办?