Python使用Scrapy爬取妹子图


Posted in Python onMay 28, 2015

Python Scrapy爬虫,听说妹子图挺火,我整站爬取了,上周一共搞了大概8000多张图片。和大家分享一下。

核心爬虫代码

# -*- coding: utf-8 -*-
from scrapy.selector import Selector
import scrapy
from scrapy.contrib.loader import ItemLoader, Identity
from fun.items import MeizituItem
 
 
class MeizituSpider(scrapy.Spider):
  name = "meizitu"
  allowed_domains = ["meizitu.com"]
  start_urls = (
    'http://www.meizitu.com/',
  )
 
  def parse(self, response):
    sel = Selector(response)
    for link in sel.xpath('//h2/a/@href').extract():
      request = scrapy.Request(link, callback=self.parse_item)
      yield request
 
    pages = sel.xpath("//div[@class='navigation']/div[@id='wp_page_numbers']/ul/li/a/@href").extract()
    print('pages: %s' % pages)
    if len(pages) > 2:
      page_link = pages[-2]
      page_link = page_link.replace('/a/', '')  
      request = scrapy.Request('http://www.meizitu.com/a/%s' % page_link, callback=self.parse)
      yield request
 
  def parse_item(self, response):
    l = ItemLoader(item=MeizituItem(), response=response)
    l.add_xpath('name', '//h2/a/text()')
    l.add_xpath('tags', "//div[@id='maincontent']/div[@class='postmeta clearfix']/div[@class='metaRight']/p")
    l.add_xpath('image_urls', "//div[@id='picture']/p/img/@src", Identity())
 
    l.add_value('url', response.url)
    return l.load_item()

项目地址:https://github.com/ZhangBohan/fun_crawler

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
跟老齐学Python之Python安装
Sep 12 Python
Python验证文件是否可读写代码分享
Dec 11 Python
python随机取list中的元素方法
Apr 08 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
python简单鼠标自动点击某区域的实例
Jun 25 Python
python自动化测试之如何解析excel文件
Jun 27 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
Python如何将将模块分割成多个文件
Aug 04 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
Python实现统计单词出现的个数
May 28 #Python
Python下载懒人图库JavaScript特效
May 28 #Python
Python实现给qq邮箱发送邮件的方法
May 28 #Python
Python import用法以及与from...import的区别
May 28 #Python
Python中使用不同编码读写txt文件详解
May 28 #Python
Python实现统计英文单词个数及字符串分割代码
May 28 #Python
python处理大数字的方法
May 27 #Python
You might like
十大“创意”战术!
2020/03/04 星际争霸
使用PHP编写的SVN类
2013/07/18 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
php利用事务处理转账问题
2015/04/22 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
SlideView 图片滑动(扩展/收缩)展示效果
2010/08/01 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
Python自动重试HTTP连接装饰器
2015/04/28 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
合作投资意向书
2014/04/01 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
寒假安全保证书
2015/02/28 职场文书
女性健康讲座主持词
2015/07/04 职场文书