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同时兼容python2和python3的8个技巧分享
Jul 11 Python
Python获取文件所在目录和文件名的方法
Jan 12 Python
详解python字节码
Feb 07 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
python flask中静态文件的管理方法
Mar 20 Python
python for循环输入一个矩阵的实例
Nov 14 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
详解Python静态网页爬取获取高清壁纸
Apr 23 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
Python项目打包成二进制的方法
Dec 30 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
js Math 对象的方法
2013/09/01 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
python三元运算符实现方法
2013/12/17 Python
python中pycurl库的用法实例
2014/09/30 Python
Python文件和目录操作详解
2015/02/08 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
如何利用Python写个坦克大战
2020/11/18 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
诚信承诺书模板
2014/05/26 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python