meizituSpider

抓取了meizitu萌妹板块的照片,基于BeautifulSoup4。

环境:
1、python3.6
2、pip install requests
3、pip install beautifulsoup4

参考资料:

WindwosPip报错:https://www.anaconda.com/download/
scrapy报错:http://blog.csdn.net/code_ac/article/details/71159244
Requests:http://docs.python-requests.org/zh_CN/latest/user/install.html#install
beautifulsoup:http://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#
Scrapy文档:http://scrapy-chs.readthedocs.io/zh_CN/0.24/index.html
lxml:http://lxml.de/
基础学习:
bs4:https://cuiqingcai.com/1319.html
runoob:http://www.runoob.com/python3/python3-tutorial.html
爬虫教程:
谢科入门:https://www.zhihu.com/question/20899988/answer/24923424
高野良:https://www.zhihu.com/question/20899988/answer/58388759
催庆才:https://cuiqingcai.com/3179.html
陈键冬:https://github.com/chenjiandongx/mzitu
yonggege:https://zhuanlan.zhihu.com/p/26304528?refer=zimei
额:https://zhuanlan.zhihu.com/p/25428493
等等等等。。。。

以下为教程v1.0:

0x10获取网页(得到html文本)

0x11背景知识:html基础

0x12背景知识:Requests, 获取网页的库。 文档传送门

0x13代码实现:

#1获取链接
import requests
url = "http://www.meizitu.com/a/4852.html"
html = requests.get(url) #响应的二进制
html.encoding = 'gb2312' #指定网站的编码
text = html.text

0x20分析内容(提取图片地址)

0x21背景知识:beautifulsoup4 官方文档,民间教程

0x22背景知识:正则表达式 教程传送门

0x23代码实现:

#2 获取文本
from bs4 import BeautifulSoup
bsop = BeautifulSoup(text,'html.parser') #创建beautifulsoup4对象。
img_list = bsop.find('div',{'id':'picture'}).findAll('img')#img_list列表的对象是tag

0x30保存图片

0x31背景知识:Http请求方法,教程传送门

0x32背景知识:os模块,传送门

0x33代码实现:

#3 下载图片
# 构造headers
import random
UserAgent_List = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]headers = {'User-Agent': random.choice(UserAgent_List),'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",'Accept-Encoding': 'gzip',}
# 创建文件夹
import os
img_title = bsop.find('a',{'href':url}).string
os.mkdir(img_title)# 保存每一张图片
count = 1
for img in img_list:img_url = img.attrs['src'] #图片属性中的'src'标签filename = '%s/%s/%s.jpg'%(os.path.abspath('.'),img_title,count)with open(filename,'wb+')as jpg:jpg.write(requests.get(img_url,headers=headers).content)count += 1

0x40封装搞事【可以用的代码】

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import os
import random
UserAgent_List = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]headers = {'User-Agent': random.choice(UserAgent_List),'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",'Accept-Encoding': 'gzip',}#1 获取主页列表
def getPage(pageNum):url = 'http://www.meizitu.com/a/cute_{}.html'.format(pageNum)html = requests.get(url)html.encoding = 'gb2312'text = html.textbsop = BeautifulSoup(text,'html.parser')img_list = bsop.find('ul',{'class':'wp-list clearfix'}).findAll('a')url_list = []s = set()for img in img_list:if(img.attrs['href'] in s):continueurl_list.append(img.attrs['href'])s.add(img.attrs['href'])return url_list# 2~3得到页面图片
def getImg(url):#2 获取页面链接html = requests.get(url)html.encoding = 'gb2312'text = html.textbsop = BeautifulSoup(text,'html.parser')imgs = bsop.find('div',{'id':'picture'}).findAll('img')img_title = bsop.find('div',{'class':'metaRight'}).find('a').string #创建文件夹os.mkdir(img_title)#3 保存页面图片count = 1for img in imgs:img_url = img.attrs['src']filename = '%s/%s/%s.jpg'%(os.path.abspath('.'),img_title,count)with open(filename,'wb+')as jpg:jpg.write(requests.get(img_url,headers=headers).content)count += 1#0 主程序开始
if __name__ == '__main__':pageNum = input(u'请输入页码:')urls = getPage(pageNum)for url in urls:getImg(url)

以及,丢到码云上了。

【Python3】【爬虫】meizituSpider相关推荐

  1. 【Python3爬虫】常见反爬虫措施及解决办法(二)...

    [Python3爬虫]常见反爬虫措施及解决办法(二) 这一篇博客,还是接着说那些常见的反爬虫措施以及我们的解决办法.同样的,如果对你有帮助的话,麻烦点一下推荐啦. 一.防盗链 这次我遇到的防盗链,除了 ...

  2. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

  3. python3爬虫入门教程-有什么好的python3爬虫入门教程或书籍吗?

    2018.2.23 更新.现在书也来了,经过一段时间的学习,我把我的爬虫经验写成了一本书,名字叫<Python3网络爬虫开发实战> /> 本书通过多个实战案例详细介绍了 Python ...

  4. python爬虫案例-Python3爬虫三大案例实战分享

    课程名称: [温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程:2. 课程相关资料可在课程PC端公告查看下载:3.加入课程后,点(课时)列表即可观看视频 ] 课程须知: ...

  5. python3爬虫入门教程-Python3爬虫学习入门教程

    本文实例讲述了Python3爬虫相关入门知识.分享给大家供大家参考,具体如下: 在网上看到大多数爬虫教程都是Python2的,但Python3才是未来的趋势,许多初学者看了Python2的教程学Pyt ...

  6. python3爬虫实例代码-Python3爬虫带上cookie的实例代码

    Cookie的英文原意是"点心",它是在客户端访问Web服务器时,服务器在客户端硬盘上存放的信息,好像是服务器发送给客户的"点心".服务器可以根据Cookie来 ...

  7. python3爬虫系列教程-Python3爬虫视频学习教程

    下面是转发博客内容,挺有用的 大家好哈,现在呢静觅博客已经两年多啦,可能大家过来更多看到的是爬虫方面的博文,首先非常感谢大家的支持,希望我的博文对大家有帮助! 之前我写了一些Python爬虫方面的文章 ...

  8. Python3爬虫-01-简单网页爬取

    ''' 宇宙黑客王磊磊 Python3爬虫 简单网页的获取第一个简单的示例 爬去Hades 官网首页 '''import sys import urllib.request print(sys.get ...

  9. Python3 爬虫实战 — 模拟登陆12306【点触验证码对抗】

    登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://kyfw.12306.cn/otn/resources/login.html 实现目标:模拟登陆中国铁路12306,攻 ...

  10. Python3 爬虫实战 — 模拟登陆哔哩哔哩【滑动验证码对抗】

    登陆时间:2019-10-21 实现难度:★★★☆☆☆ 请求链接:https://passport.bilibili.com/login 实现目标:模拟登陆哔哩哔哩,攻克滑动验证码 涉及知识:滑动验证 ...

最新文章

  1. UITextField 键盘
  2. html手机端页面meta,手机页面的 HTMLmeta 标签使用与说明
  3. NLP十大数据扩充策略
  4. 利用Visio 2007图形化项目进度和项目跟踪
  5. 应用前台省电秘籍——这些常见功耗雷坑不要再跳了
  6. redis查询key的数量
  7. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
  8. 三层代码的bll dal 层优化
  9. 常见笔顺错误的字_孩子的字越写越差,强行矫正效果差,家长应这样培养孩子书写态度...
  10. tensorflow下载mnist数据集
  11. cv :: cvtColor
  12. 留一份名单,以供研究:2009中国企业500强全名单
  13. 车牌号正则表达式(含新能源车牌)
  14. Super Socks5cap使用教程
  15. 使用国内镜像源来加速python pypi包的安装
  16. 树模型(一):预备知识
  17. pc端 移动端适配rem插件方式
  18. 在CentOS7上源码安装MongoDB 3.2.7
  19. [ FI基本业务流程 ] - Accounts Payable基础知识
  20. 使用真实手机进行burp抓取app包

热门文章

  1. Git 基础(十)—— 常用命令
  2. C++基础——非类型模板参数
  3. token什么意思中文_gre是什么意思中文
  4. zipfile中怎么关闭流_深入学习JAVA -IO流详解
  5. python从入门到精通 明日科技 电子书-【明日科技+python】百度云下载 - 云盘精灵...
  6. 免费python全套视频教学-有哪些优质的Python全系列视频教程推荐,免费的收费的都可以?...
  7. python可以做什么-学会Python后都能做什么?网友们的回答简直不要太厉害
  8. python培训价目表-python培训费用多少?
  9. 嵌入式语音识别系统是什么
  10. java8 foreach 伟参_【java8】为java8的foreach正名