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中使用元类的教程
Apr 28 Python
Python对文件操作知识汇总
May 15 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
用python记录运行pid,并在需要时kill掉它们的实例
Jan 16 Python
使用django-crontab实现定时任务的示例
Feb 26 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
一文秒懂python读写csv xml json文件各种骚操作
Jul 04 Python
python如何将两个txt文件内容合并
Oct 18 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
Elasticsearch 基本查询和组合查询
Apr 19 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 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
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
js几个验证函数代码
2010/03/25 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
谈一谈HTML5本地存储技术
2016/03/02 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
计算机软件个人的自荐信范文
2013/12/01 职场文书
酒店节能降耗方案
2014/05/08 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
个人贷款收入证明
2014/10/26 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
房地产财务经理岗位职责
2015/04/08 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
MongoDB数据库之添删改查
2022/04/26 MongoDB