找回密码
  注册[Register]
查看: 1050|回复: 15

[Android] 爬取套图网站某个美女的所有写真

  [复制链接]
发表于 2021-3-6 07:38 来自手机 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

爬取套图网站某个美女的所有写真
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from mid.items import XiurenjiItem

class SpidernameSpider(CrawlSpider):
    name = 'spidername'
    # allowed_domains = ['www.xxx.com']
    #搜索页的一个连接
    start_urls = ['https://www.xiurenji.cc/plus/search/index.asp?keyword=egg&searchtype=title&p=4']
    #链接提取器,拿到所有的搜索分页的连接
    link = LinkExtractor(allow='title&p=\d+')
    rules = (
        Rule(link, callback='parse_item', follow=True),
    )

    #自定义这个爬虫的图片下载的本地存储位置
    custom_settings = {
        'IMAGES_STORE': r'W:\HDTV\写真\女神egg'
    }

    #解析每个分页的url
    def parse_item(self, response):
        #分页页面内的套图a标签
        title_tag=response.xpath('//div[@class="list"]//div[@class="title1"]/a')
        #循环a标签可以拿到套图的title和url
        for title in title_tag:
            t=''.join(title.xpath('.//text()').extract())
            u=f'https://www.xiurenji.cc/{title.xpath("./@href").extract_first()}'
            #手动发请求,回调套图的解析,要传个参数,把当前套图的title传过去
            yield scrapy.Request(url=u,callback=self.parse_page,meta={'title':t})

    #套图的解析
    def parse_page(self, response):
        #拿到套图的title
        title=response.meta['title']
        #套图里面也有分页,每个分页里面有几张写真,拿到分页里面的写真
        p=response.xpath('//div[@class="img"]/p/img')
        #循环页面内的写真图片,拿到每一个写真图片的url
        for img in p:
            #url要拼接一下
            img_url='https://www.xiurenji.cc'+img.xpath('./@src').extract_first()
            #实例化item,这个是要传到管道的
            item=XiurenjiItem()
            item['url']=img_url
            #图片按title分类,scrapy会自动根据路径建文件夹
            item['path']=title+'\\'+img_url.split('/')[-1]
            #把item传到管道
            yield item
        #拿到下一页的url
        next_url=response.xpath('//div[@class="page"]/a[text()="后"]/@href').extract_first()
        #如果存在就回调页面解析
        if next_url:
            next_url=f'https://www.xiurenji.cc{next_url}'
            #这里要把title传过去
            yield scrapy.Request(url=next_url,callback=self.parse_page,dont_filter=True,meta={'title':title})

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2021-3-6 07:53 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 08:23 | 显示全部楼层

感谢分享,谢谢提供分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 08:25 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 08:30 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 08:40 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 08:43 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 09:11 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 09:34 | 显示全部楼层
一定支持,谢谢大佬的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2021-3-6 09:47 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-19 21:49 , Processed in 0.035974 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表