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中的字符串与字符编码(推荐)
Dec 14 Python
深入理解python中的select模块
Apr 23 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
python读取excel表格生成erlang数据
Aug 26 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Python实现屏幕截图的两种方式
Feb 05 Python
python搜索包的路径的实现方法
Jul 19 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
Python图片处理之图片裁剪教程
May 27 Python
一行Python命令实现批量加水印
Apr 07 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
自己前几天写的无限分类类
2007/02/14 PHP
php牛逼的面试题分享
2013/01/18 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
innerHTML在IE中报错解决方案
2014/12/15 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python中日期和时间格式化输出的方法小结
2015/03/19 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
安全生产先进个人材料
2014/02/06 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
《穷人》教学反思
2014/04/08 职场文书
学生评语大全
2014/04/18 职场文书
人事专员岗位说明书
2014/07/29 职场文书
工作检讨书500字
2014/10/19 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
地道战观后感
2015/06/04 职场文书
经典爱情感言
2015/08/03 职场文书