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

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


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

查看所有标签

猜你喜欢:

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

产品型社群

产品型社群

李善友 / 机械工业出版社 / 2015-3-1 / CNY 69.00

传统模式企业正在直面一场空前的“降维战争”, 结局惨烈,或生或死。 传统模式很难避免悲惨下场, 诺基亚等昔日庞然大物轰然倒塌, 柯达发明了数码成像技术却依然破产, 新商业的兴起到底遵循的是什么模式? 微信轻而易举干掉了运营商的短信业务, “好未来”为何让传统教育不明觉厉? 花间堂为什么不是酒店,而是入口? 将来不会有互联网企业与传统企业之分, ......一起来看看 《产品型社群》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具