先来个效果截图(屈服在我的淫威之下吧!坏坏...嘿0.0)

因为是简易版而且是自己写着玩玩而已,自己也刚学,亦是笔记亦是分享,大佬轻喷就好。主要目的是希望更多人能够体验爬取一些seqing图片的 快乐  ??哈哈


完整代码:文末已贴出

应该安装个bs4的包就可以直接用了!代码有详细注释的,推荐直接看代码,后文是浅薄的讲解...

↑加包方法


简单逐步地讲一下是怎么实现的吧(有点像期末答辩的赶脚...不管了装逼要紧!)

简单式爬取一个网站信息的步骤一般是:

1. 确定一个目标网址targetURL >> 2.分析该网站的HTML代码(借助开发者工具查看源码;360IE快捷键是Ctrl+shift+c,其他浏览器进入F12开发者工具应该可见) >> 3. 使用BeautifulSoup获取想要内容 >> 4.保存数据   >> ...

本例targetURL

     http://www.mmonly.cc/mmtp/qcmn/237269.html

分析HTML

  • 目标网站编码格式是gb2312到时候解码需要稍微注意
  • 一些关键标识符(红框标出)帮助我们准确找到要使用的信息

分析得知:

该网站HTML代码,我们知道了每一张大图本身就是被a 链接标签包围的,而大图的src属性就是该图片的下载地址。

那么:

通过获得<a>标签中的href属性我们可以找到下一个网页,继续爬取图片

通过获得<img>属性中的src属性,我们可以将大图下载并保存在本地。

使用BeautifulSoup获取想要内容

关于beautifulsoup的语法,这里不介绍了,特别推荐的是这一篇文章(https://cuiqingcai.com/1319.html/comment-page-1#comments),我觉得写得通俗易懂,很实用。

用本例中的代码来大致说明一下基本步骤与使用:

#1.导包

from bs4 import BeautifulSoup

#2.新建对象,第一个参数HTML源代码,第二个参数是解析器类别
    soup = BeautifulSoup(html, 'html.parser')

#3.查找  ,
     Divs = soup.find_all('div',attrs={'id':'big-pic' })#从soup对象中,查找 'id'='big-pic'  的div 标签 , 返回值是Tag类型

 picLink = (div.find('a').find('img')['src'])#查找div中的a标签中的img标签中的src属性 ,  返回值是str

本例我们最想要的就是picLink了(图片下载地址),有了picLink,我们就可以利用它下载并保存图片放置本地了。

保存数据

上一步已经获取了想要的下载链接,最后一步就是下载保存了。如下

运行效果:


本例完整代码:

import urllib.request
from bs4 import BeautifulSoup
import osdef Download(url,picAlt,name):path = 'D:\\pythonDemo____________爬虫____________\\'+picAlt+'\\'if not os.path.exists(path):#判断系统是否存在该路径,不存在则创建os.makedirs(path)urllib.request.urlretrieve( url, '{0}{1}.jpg'.format(path, name))  # ,下载图片保存在本地header = {"User-Agent":'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36','Accept': '*/*','Accept-Language': 'en-US,en;q=0.8','Cache-Control': 'max-age=0','Connection': 'keep-alive'"""用户代理(User-Agent):用于伪装程序不是爬虫,让服务器以为你是一个正常用户。是一种向访问网站提供你所使用的浏览器类型、操作系统及版本、CPU 类型、浏览器渲染引擎、浏览器语言、浏览器插件等信息的标识。UA字符串在每次浏览器 HTTP 请求时发送到服务器"""
}
def run(targetUrl, beginNUM ,endNUM):req = urllib.request.Request(url=targetUrl,headers=header)response = urllib.request.urlopen(req)#这里的req可看成一种更为高级的URLhtml = response.read().decode('gb2312','ignore')#解码 得到这个网页的html源代码:这个网站的编码使用的是GB2312格式,更常见的网站编码格式应该是UTF-8了吧soup = BeautifulSoup(html, 'html.parser')#将得到的HTML代码使用python自带的解析器(也可以使用lxml解析器,性能会更好,本代码从简Divs = soup.find_all('div',attrs={'id':'big-pic' })#使得条件唯一,找到我们想要下载的目标。这里语法是bs,主流的解析搜索方式有:bs,xpath和正则 ,小白还是用bs吧nowpage = soup.find('span',attrs={'class':'nowpage'}).get_text()#获取当前页码totalpage= soup.find('span',attrs={'class':'totalpage'}).get_text()#获取所有页if beginNUM ==endNUM :#跳出条件returnfor div in Divs:#遍历所有大图所在的div,其实只有一个元素。因为前面使用的是find_all()方法得到的是集合,所以这要遍历了。有点不太实用 因为与照顾到语法使用全面的意思beginNUM = beginNUM+1if div.find("a") is None :#如果这张图片没有下一张图片的链接print("没有下一张了")returnelif div.find("a")['href'] is None or div.find("a")['href']=="":#有链接,但是是 空链接print("没有下一张了None")returnprint("=====================================================下载信息:总进度:",beginNUM,"/",endNUM," ,正在下载套图:(",nowpage,"/",totalpage,")====================================")if int(nowpage)<int(totalpage):#nowpage,totalpage是str类型;(如果不转换成int来比较的话,totalPage是字符串“12”无法与‘1’‘2’这些单个字符的字符串比较)nextPageLink ="http://www.mmonly.cc/mmtp/qcmn/" +(div.find('a')['href'])elif int(nowpage)==int(totalpage):nextPageLink = (div.find('a')['href'])picLink = (div.find('a').find('img')['src'])#本网站大图的SRC属性是下一张图片的链接picAlt = (div.find('a').find('img'))['alt']#图片的名字alt属性print('下载的图片链接:',picLink)print('套图名:[ ', picAlt , ' ] ')print('开始下载...........')Download(picLink,picAlt, nowpage)print("下载成功!")print('下一页链接:',nextPageLink)run(nextPageLink,beginNUM ,endNUM)#递归return#################################main 函数########################################
if __name__ == '__main__':#可以是这个网站(http://www.mmonly.cc/mmtp/qcmn/)下的任意一个网址(如下)开始爬取,means爬取的起点()# targetUrl ="http://www.mmonly.cc/mmtp/qcmn/258345_2.html"# targetUrl ="http://www.mmonly.cc/mmtp/qcmn/259676_8.html"targetUrl ="http://www.mmonly.cc/mmtp/qcmn/237269.html"run(targetUrl,beginNUM=0,endNUM=60)#设置下载图片数量:endNUM-beginNUM 数字相减为总数量print("【【【【       OVER!        】】】】】")

Python使用BeautifulSoup简单实现爬取妹子mm图片--初级篇相关推荐

  1. python爬虫之正则表达式(爬取妹子网图片)

    目录 正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子 ...

  2. python从网址爬图片协程_Python爬虫多任务协程爬取虎牙MM图片

    查看: 4420|回复: 241 [作品展示] Python爬虫多任务协程爬取虎牙MM图片 电梯直达 发表于 2019-4-17 21:35:47 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结 ...

  3. 基于python,实现简单的爬取基金净值的爬虫

    Python 基金爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python,实现简单的爬取基金净值的爬虫 基于python的requests和进程池实现了简单的基金数据爬取脚本: imp ...

  4. python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片

    Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...

  5. [day2]python网络爬虫实战:爬取美女写真图片(增强版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...

  6. [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...

  7. Python爬取妹子秀图片

    Python爬取妹子秀 爬虫真好玩,就是牢饭也香hhh 初体验之爬个妹子秀图库的swmt栏,上面的小妹妹-嘶溜针不戳. 不多说,上代码.第一次写,抄了这位佬的代码基本上,感谢这位佬@https://w ...

  8. Python利用selenium简单的爬取网易云歌曲排行榜

    最近学习了一下selenuim和XPath,技术还很菜,简单的爬取了一下网易云歌曲的排行榜信息,最后保存到mongodb里面 要爬取的部分如下图所示: 爬取每个歌曲的排名,名称,时长,歌手. 创建mo ...

  9. [day1]python网络爬虫实战:爬取美女写真图片

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.实现 1.分析url格 ...

最新文章

  1. qt on android qml,Qt on Android: Qt Quick 之 Hello World 图文详解
  2. [WebService] xml WebService学习1
  3. 深入Linux PAM体系结构
  4. 浏览器左上角的网站图标
  5. Python命令行选项参数解析策略
  6. 从零开始配置MySQL MMM
  7. 【LOJ】#2184. 「SDOI2015」星际战争
  8. 在线编码工具_我希望在开始编码时就已经知道的工具
  9. 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
  10. python两组数的差异 pca_python – scikit KernelPCA不稳定的结果
  11. 一个类似京东商城那种多条件筛选效果
  12. pyspark分类算法之决策树分类器模型实践【decisionTreeClassifier】
  13. Tolua 报错cannot load incompatible bytecode
  14. 学生选课管理系统(python)
  15. PSpice电路模拟
  16. 网络安全知识竞赛(国家信息安全水平考试NISP)模拟题1
  17. methodsignature java_Java MethodSignature.getMethod方法代碼示例
  18. python 球的表面积和体积_[给球的体积算表面积]C语言求球的表面积和体积
  19. Ngnix服务器详解(Windows版本)(非原创)
  20. HTML / CSS / JS 编程入门 —— 使用 Lightly 制作可切换主题的简单网页

热门文章

  1. 网络基础(二)- TCP协议
  2. scrapy下载汽车之家宝马5系高清图片
  3. MySql ocp认证之MySql安装(一)
  4. Flink集群有哪些角色?各自有什么作用?
  5. 使用python处理美国气象数据
  6. frequence table
  7. CloseableHttpClient read time out
  8. MySQL行列转换及多选字典
  9. pdf怎么转换成html.4,PDF怎么转换成HTML?
  10. Python学习笔记——爬虫之动态HTML处理和机器图像识别