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之入门(三)序列
May 25 Python
Python 的 Socket 编程
Mar 24 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Python网络编程 Python套接字编程
Sep 13 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Jan 11 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 Python
Django 实现对已存在的model进行更改
Mar 28 Python
Python+Tkinter打造签名设计工具
Apr 01 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 传值赋值与引用赋值的区别
2010/12/29 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
javascript运动详解
2015/07/06 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
python元组操作实例解析
2014/09/23 Python
python中sets模块的用法实例
2014/09/30 Python
Python内置函数之filter map reduce介绍
2014/11/30 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
python调用摄像头拍摄数据集
2019/06/01 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
学生处主任岗位职责
2013/12/01 职场文书
美德好少年主要事迹
2014/01/29 职场文书
产品生产计划书
2014/05/07 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
工作调动申请报告
2015/05/18 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
二年级作文之动物作文
2019/11/13 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript