Ver beta..代码粗陋。

使用说明以Windows为例, Python版本为2.7.6

  1. 确认你电脑已经安装了Python, Windows默认安装路径为C:\Python27。如果没有安装,先下载安装 https://www.python.org/download/releases/2.7.6
  2. 下载mechanize (mechanize-0.2.5.zip)和BeautifulSoup (beautifulsoup4-4.3.2.tar.gz
  3. 解压缩mechanize-0.2.5.zip 到C:\mechanize-0.2.5,打开命令行(Windows键+R键,输入cmd,回车),分别执行以下两条命令
    cd C:\mechanize-0.2.5
    C:\Python27\python setup.py install
  4. 解压缩beautifulsoup4-4.3.2.tar.gz 到C:\beautifulsoup4-4.3.2,打开命令行,执行命令
    cd C:\beautifulsoup4-4.3.2
    C:\Python27\python setup.py install
  5. 拷贝下面代码,保存到任意目录(如:C:\picture\meizitu_spider.py)
  6. 打开命令行,执行命令
    cd C:\picture
    C:\Python27\python meizitu_spider.py
  7. 查看文件夹 C:\picture\MeiziTu
  8. Enjoy :-)

代码:

#!/usr/local/bin/python
# -*-coding=utf-8-*-
# Filename: meizitu_spider.py import os
import mechanize
from bs4 import BeautifulSoup br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1")]
#br.set_proxies({"http": "proxy.host.com:port"}) def parse_url(url):
br.open(url)
response = br.response()
soup = BeautifulSoup(response.read(), from_encoding='gb18030') return soup def find_next_page(soup):
page_nums = soup.find('div', id='wp_page_numbers').find_all('li');
next_page_wrapper = page_nums[-2] return next_page_wrapper.find('a') host = "http://www.meizitu.com/"
next_page_uri = '' page_count = 1
parent_folder = 'MeiZiTu'
if(not(os.path.exists(parent_folder))):
os.mkdir(parent_folder) while True:
print 'Start to parse PAGE %d' %page_count soup = parse_url(host + 'a/' + next_page_uri)
next_page = find_next_page(soup) if next_page == None:
break next_page_uri = next_page.get('href') for pic_link_wrapper in soup.find_all('div', attrs={'class':'metaRight'}):
pic_link = pic_link_wrapper.find('a')
album_soup = parse_url(pic_link.get('href'))
album_name = os.path.join(parent_folder, pic_link.get_text())
if(os.path.exists(album_name)):
continue os.mkdir(album_name) for img in album_soup.find('div', id='picture').find_all('img'):
img_src = img.get('src')
img_name = img_src[img_src.rindex('/')+1:]
picture_data = mechanize.urlopen(img_src) with open(os.path.join(album_name, img_name), 'wb') as picture:
picture.write(picture_data.read()) page_count += 1

宅男福利--利用Python简单爬图的更多相关文章

  1. Python多线程爬图&Scrapy框架爬图

    一.背景 对于日常Python爬虫由于效率问题,本次测试使用多线程和Scrapy框架来实现抓取斗图啦表情.由于IO操作不使用CPU,对于IO密集(磁盘IO/网络IO/人机交互IO)型适合用多线程,对于 ...

  2. python 简单爬取今日头条热点新闻(一)

    今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...

  3. Python简单爬取Amazon图片-其他网站相应修改链接和正则

    简单爬取Amazon图片信息 这是一个简单的模板,如果需要爬取其他网站图片信息,更改URL和正则表达式即可 1 import requests 2 import re 3 import os 4 de ...

  4. 爬虫实战【5】送福利!Python获取妹子图上的内容

    [插入图片,妹子图首页] 哈,只敢放到这个地步了. 今天给直男们送点福利,通过今天的代码,可以把你的硬盘装的满满的~ 下面就开始咯! 第一步:如何获取一张图片 假如我们知道某张图片的url,如何获取到 ...

  5. 利用python进行折线图,直方图和饼图的绘制

    我用10个国家某年的GDP来绘图,数据如下: labels   = ['USA', 'China', 'India', 'Japan', 'Germany', 'Russia', 'Brazil', ...

  6. 一、python简单爬取静态网页

    一.简单爬虫框架 简单爬虫框架由四个部分组成:URL管理器.网页下载器.网页解析器.调度器,还有应用这一部分,应用主要是NLP配合相关业务. 它的基本逻辑是这样的:给定一个要访问的URL,获取这个ht ...

  7. 如何利用python爬虫爬取爱奇艺VIP电影?

    环境:windows    python3.7 思路: 1.先选取你要爬取的电影 2.用vip解析工具解析,获取地址 3.写好脚本,下载片断 4.将片断利用电脑合成 需要的python模块: ##第一 ...

  8. Python简单爬取图书信息及入库

    课堂上老师布置了一个作业,如下图所示: 就是简单写一个借书系统. 大概想了一下流程,登录-->验证登录信息-->登录成功跳转借书界面-->可查看自己的借阅书籍以及数量... 登录可以 ...

  9. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

随机推荐

  1. Linux PAM&&PAM后门

    Linux PAM&&PAM后门 我是壮丁 · 2014/03/24 11:08 0x00 PAM简介 PAM (Pluggable Authentication Modules )是 ...

  2. linux-insides-cn-BOOK

    https://www.gitbook.com/book/xinqiu/linux-insides-cn/details https://www.gitbook.com/book/looly/elas ...

  3. 学习笔记之APACHE ANT

    http://baike.baidu.com/link?url=KkOWkH_nMVJRbd4oj-aIHMVL4HR-s7fqm3i2brUcZzBinwUXjZgzPcYIWz5qFNNvjait ...

  4. visual studio 2013 有效序列号

    还没试过,可以参考下! visual studio 2013 有效序列号: BWG7X-J98B3-W34RT-33B3R-JVYW9

  5. jmap命令

    一.jmap -heap PID using parallel threads in the new generation.  ##新生代采用的是并行线程处理方式 using thread-local ...

  6. PHP 简易读取文件目录下的文件,生成css spirte图片

    因为个人不是对PS熟悉,不清楚如何在PS中生成一张横向有序的spirte图片,使用了"css sprite V4.3"版本,生成的图片会出现压缩图片大小的情况,本想修改原作者开发的 ...

  7. 2014年下半年计划—写博客,旅游,带女朋友拍写真

           前言:写这篇博客之前,一直在网上,看各位大牛写的博文,发布的视频等.当然由于自己的初来乍到,人生地不"熟"儿的,也吃了不少亏,走了不少弯路.本着一颗学习的心,携着向各 ...

  8. C#学习笔记15:字符串、文件、目录的操作方法

    字符串:不可变性 String str=”abcdf”; 将字符串转换为char数组:ToCharArray(); Char[] ch=str.ToCharAarray(); 将char数组转换为字符 ...

  9. Sql 基于列的Case表达式

    Case表达式可以用在 Select,update ,delete ,set,in,where ,order by,having子句之后, 只是case表达式不能控制sql程序的流程,只能作为基于列的 ...

  10. web开发常用图片格式

    web开发常用图片格式有:gif   jpg/jpeg    png gif:图片压缩率高,可以显示动画,但是只能显示256色,可能造成颜色丢失. jpg:图片压缩率高(有损压缩),可以用小文件来显示 ...