Python使用Scrapy爬取妹子图

 更新时间:2015年05月28日 10:23:42   投稿:hebedich  
前面我们给大家介绍了使用nodejs来爬取妹纸图片的方法,下面我们来看下使用Python是如何实现的呢,有需要的小伙伴参考下吧。

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中对列表的删除和添加方法详解

    这篇文章主要为大家详细介绍了python中对列表的删除和添加方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • transforms.Compose()函数的使用及说明

    transforms.Compose()函数的使用及说明

    这篇文章主要介绍了transforms.Compose()函数的使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 使用Python设置tmpfs来加速项目的教程

    使用Python设置tmpfs来加速项目的教程

    这篇文章主要介绍了使用Python设置tmpfs来加速项目的教程,文中给出方法使用Python脚本将tmpfs保存于内存中的程序存储到本地硬盘上,需要的朋友可以参考下
    2015-04-04
  • linux环境下Django的安装配置详解

    linux环境下Django的安装配置详解

    这篇文章主要介绍了linux环境下Django的安装配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python灰度变换中伽马变换分析实现

    Python灰度变换中伽马变换分析实现

    灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每个像素灰度值的方法。目的是改善画质,使图像显示效果更加清晰。图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分
    2022-10-10
  • Python字符串的转义字符

    Python字符串的转义字符

    这篇文章主要介绍了Python字符串的转义字符,转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,下文相关资料需要的小伙伴可以参考一下
    2022-04-04
  • python跳过第一行快速读取文件内容的实例

    python跳过第一行快速读取文件内容的实例

    今天小编就为大家分享一篇python跳过第一行快速读取文件内容的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python ollama的搭建与使用流程分析

    Python ollama的搭建与使用流程分析

    这篇文章主要介绍了Python ollama的搭建与使用流程分析,详细介绍了ollama的安装方式,本文结合实例给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • python读取并显示图片的三种方法(opencv、matplotlib、PIL库)

    python读取并显示图片的三种方法(opencv、matplotlib、PIL库)

    这篇文章主要给大家介绍了关于python读取并显示图片的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项

    Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项

    这篇文章主要介绍了Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11

最新评论