宅男福利--利用Python简单爬图
Ver beta..代码粗陋。
使用说明以Windows为例, Python版本为2.7.6
- 确认你电脑已经安装了Python, Windows默认安装路径为C:\Python27。如果没有安装,先下载安装 https://www.python.org/download/releases/2.7.6
- 下载mechanize (mechanize-0.2.5.zip)和BeautifulSoup (beautifulsoup4-4.3.2.tar.gz)
- 解压缩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 - 解压缩beautifulsoup4-4.3.2.tar.gz 到C:\beautifulsoup4-4.3.2,打开命令行,执行命令
cd C:\beautifulsoup4-4.3.2
C:\Python27\python setup.py install - 拷贝下面代码,保存到任意目录(如:C:\picture\meizitu_spider.py)
- 打开命令行,执行命令
cd C:\picture
C:\Python27\python meizitu_spider.py - 查看文件夹 C:\picture\MeiziTu
- 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简单爬图的更多相关文章
- Python多线程爬图&Scrapy框架爬图
一.背景 对于日常Python爬虫由于效率问题,本次测试使用多线程和Scrapy框架来实现抓取斗图啦表情.由于IO操作不使用CPU,对于IO密集(磁盘IO/网络IO/人机交互IO)型适合用多线程,对于 ...
- python 简单爬取今日头条热点新闻(一)
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
- Python简单爬取Amazon图片-其他网站相应修改链接和正则
简单爬取Amazon图片信息 这是一个简单的模板,如果需要爬取其他网站图片信息,更改URL和正则表达式即可 1 import requests 2 import re 3 import os 4 de ...
- 爬虫实战【5】送福利!Python获取妹子图上的内容
[插入图片,妹子图首页] 哈,只敢放到这个地步了. 今天给直男们送点福利,通过今天的代码,可以把你的硬盘装的满满的~ 下面就开始咯! 第一步:如何获取一张图片 假如我们知道某张图片的url,如何获取到 ...
- 利用python进行折线图,直方图和饼图的绘制
我用10个国家某年的GDP来绘图,数据如下: labels = ['USA', 'China', 'India', 'Japan', 'Germany', 'Russia', 'Brazil', ...
- 一、python简单爬取静态网页
一.简单爬虫框架 简单爬虫框架由四个部分组成:URL管理器.网页下载器.网页解析器.调度器,还有应用这一部分,应用主要是NLP配合相关业务. 它的基本逻辑是这样的:给定一个要访问的URL,获取这个ht ...
- 如何利用python爬虫爬取爱奇艺VIP电影?
环境:windows python3.7 思路: 1.先选取你要爬取的电影 2.用vip解析工具解析,获取地址 3.写好脚本,下载片断 4.将片断利用电脑合成 需要的python模块: ##第一 ...
- Python简单爬取图书信息及入库
课堂上老师布置了一个作业,如下图所示: 就是简单写一个借书系统. 大概想了一下流程,登录-->验证登录信息-->登录成功跳转借书界面-->可查看自己的借阅书籍以及数量... 登录可以 ...
- 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程
项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...
随机推荐
- php动态调用方法_sux
<form action=""> <input type="hidden" name="mod" id="mo ...
- php转义和去掉html、php标签函数
/** * 转义html字符 * * @param string|array $var */function fhtmlspecialchars($var) { if (is_array ( $var ...
- java技术栈:一、java编程语言概述
Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化.因为项目小组成员皆为C++的高手(那个年代 ...
- python--列表的使用
1.定义列表: names = ['Mo',"Tenglan",'Eric'] 通过下标访问列表中的元素,下标从0开始计数 >>> names[0] 'Mo' & ...
- 基础:c++中引用与java中的引用
using namespace std; class Point { public: double x; double y; Point(){} void setPoint(double x,doub ...
- Sqlserver的触发器的简单使用
1,触发器有两种 (1)After触发器(之后触发) 触发器有个好处:就是你之前有过什么操作他会将你的操作的数据信息完整的保存下来,比如你删过什么信息,如果用触发器,那么删除后就会显示两行受影响,那么 ...
- nginx配置文件特殊字符说明
开发过程中经常重复配置nginx.conf,对里面的特殊字符始终不太明白具体的意义,今天百度nginx配置看到一篇不错的文章,转载记录下来,以备不时之需. nginx rewrite 正则表达式匹配 ...
- 关于properties文件在项目中的使用
这个是当时在学习JDBC的时候老师给讲的.web项目中把一些常用的用户名和密码都填写到一个对应的配置文件中,这样每次修改密码或者用户名的时候就可以直接修改这个配置文件了,不用动源码. 老师讲了两种读取 ...
- ASP.Net_入门准备
基础篇:(学习能力取决于你的基础扎不扎实) 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全 ...
- 月下载量上千次的APP源码分享
在360上面上线了一个月,下载量上千余次.这里把代码都分享出来,供大家学习哈!还包括教大家如何接入广告,赚点小钱花花,喜欢的帮忙顶一个,大神见了勿喷,小学僧刚学Android没多久. 首先介绍这款应用 ...