Scrapy项目(斗鱼直播)---利用Spider爬取颜值下的美女信息

栏目: 编程工具 · 发布时间: 6年前

Scrapy项目(斗鱼直播)---利用Spider爬取颜值下的美女信息

1、创建Scrapy项目

scrapy startproject douyu

2.进入项目目录,使用命令genspider创建Spider

scrapy genspider douyumeinv "capi.douyucdn.cn"

3、定义要抓取的数据(处理items.py文件)

# -*- coding: utf-8 -*-

import scrapy

class DouyuItem(scrapy.Item):

name = scrapy.Field()  # 存储照片的名字

imagesUrls = scrapy.Field()  # 照片的url路径

imagesPath = scrapy.Field()  # 照片保存在本地的路径

4、编写提取item数据的Spider(在spiders文件夹下:douyumeinv.py)

# -*- coding: utf-8 -*-

import scrapy

import json

# 如果下面在pycharm中有红色波浪线,参照这个设置:https://blog.csdn.net/z564359805/article/details/80650843

from douyu.items import DouyuItem

class DouyumeinvSpider(scrapy.Spider):

name = 'douyumeinv'

allowed_domains = ['capi.douyucdn.cn']

offset = 0

url = "http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset="

start_urls = [url + str(offset)]

def parse(self, response):

data = json.loads(response.text)['data']

for each in data:

item = DouyuItem()

item['name'] = each['nickname']

item['imagesUrls'] = each['vertical_src']

yield item

self.offset += 20

yield scrapy.Request(self.url + str(self.offset),callback=self.parse)

5.处理pipelines管道文件保存数据,可将结果保存到文件中(pipelines.py)

# -*- coding: utf-8 -*-

import scrapy

import os

from scrapy.utils.project import get_project_settings

from scrapy.pipelines.images import ImagesPipeline

# 继承ImagesPipeline()的子类处理图片并保存,参考:https://blog.csdn.net/z564359805/article/details/80693578

class ImagePipeline(ImagesPipeline):

# 获取settings文件中设置的图片保存地址IMAGES_STORE

IMAGES_STORE =get_project_settings().get("IMAGES_STORE")

def get_media_requests(self, item, info):

image_url = item['imagesUrls']

yield scrapy.Request(image_url)

def item_completed(self, results, item, info):

image_path = [x['path'] for ok, x in results if ok]

os.rename(self.IMAGES_STORE + '/' + image_path[0],self.IMAGES_STORE + '/' + item['name'] + '.jpg')

item['imagesPath'] = self.IMAGES_STORE + '/' + item['name']

return item

6.配置settings文件(settings.py)

# Obey robots.txt rules,具体含义参照:https://blog.csdn.net/z564359805/article/details/80691677

ROBOTSTXT_OBEY = False

# Override the default request headers:添加User-Agent信息

DEFAULT_REQUEST_HEADERS = {

'USER_AGENT':'DYZB/2.290 (iPhone; iOS 9.3.4; Scale/2.00)',

}

# 图片保存地址,这样会在当前执行的目录下创建images文件夹,也可以写具体地址

IMAGES_STORE = "./images"

# Configure item pipelines

ITEM_PIPELINES = {

'douyu.pipelines.ImagePipeline': 300,

}

# 还可以将日志存到本地文件中(可选添加设置)

LOG_FILE = "douyulog.log"

LOG_LEVEL = "DEBUG"

7.以上设置完毕,进行爬取:执行项目命令crawl,启动Spider:

scrapy crawl douyumeinv

---------------------

作者:執筆冩回憶

来源:CSDN

原文:https://blog.csdn.net/z564359805/article/details/80707165

版权声明:本文为博主原创文章,转载请附上博文链接!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精通 CSS(第3版)

精通 CSS(第3版)

[英]安迪•巴德 - Andy Budd、[瑞典]埃米尔•比约克隆德 - Emil Björklund / 李松峰 / 人民邮电出版社 / 2019-2 / 99

本书是CSS设计经典图书升级版,结合CSS近年来的发展,尤其是CSS3和HTML5的特性,对内容进行了全面改写。本书介绍了涉及字体、网页布局、响应式Web设计、表单、动画等方面的实用技巧,并讨论了如何实现稳健、灵活、无障碍访问的Web设计,以及在技术层面如何实现跨浏览器方案和后备方案。本书还介绍了一些鲜为人知的高级技巧,让你的Web设计脱颖而出。一起来看看 《精通 CSS(第3版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

html转js在线工具
html转js在线工具

html转js在线工具