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里大整数相乘相关技巧指南
Sep 12 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
Python实现常见的回文字符串算法
Nov 14 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
yolov5返回坐标的方法实例
Mar 17 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设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
在Windows中设置Python环境变量的实例讲解
2018/04/28 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
使用python+whoosh实现全文检索
2019/12/09 Python
python怎么判断素数
2020/07/01 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
网游商务专员求职信
2013/10/15 职场文书
小学清明节活动方案
2014/03/08 职场文书
致共产党员倡议书
2014/04/16 职场文书
考试作弊检讨书
2014/10/21 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
大学生村官入党自传
2015/06/26 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server