1. 程式人生 > >python3爬蟲之使用Scrapy框架爬取英雄聯盟高清桌面桌布

python3爬蟲之使用Scrapy框架爬取英雄聯盟高清桌面桌布

使用Scrapy爬蟲抓取英雄聯盟高清桌面桌布

開始專案前需要安裝python3和Scrapy,不會的自行百度,這裡就不具體介紹了

首先,建立專案

scrapy startproject loldesk

生成專案的目錄結構

首先需要定義抓取元素,在item.py中,我們這個專案用到了圖片名和連結

import scrapy

class LoldeskItem(scrapy.Item):
    name = scrapy.Field()
    ImgUrl = scrapy.Field()
    pass

接下來在爬蟲目錄建立爬蟲檔案,並編寫主要程式碼,loldesk.py

import scrapy
from loldesk.items import LoldeskItem

class loldeskpiderSpider(scrapy.Spider):
    name = "loldesk"
    allowed_domains = ["www.win4000.com"]
    # 抓取連結
    start_urls = [
        'http://www.win4000.com/zt/lol.html'
    ]

    def parse(self, response):
        list = response.css(".Left_bar ul li")
        for img in list:
            imgurl = img.css("a::attr(href)").extract_first()
            imgurl2 = str(imgurl)
            next_url = response.css(".next::attr(href)").extract_first()
            if next_url is not None:
                # 下一頁
                yield response.follow(next_url, callback=self.parse)

            yield scrapy.Request(imgurl2, callback=self.content)

    def content(self, response):
        item = LoldeskItem()
        item['name'] = response.css(".pic-large::attr(title)").extract_first()
        item['ImgUrl'] = response.css(".pic-large::attr(src)").extract()
        yield item
        # 判斷頁碼
        next_url = response.css(".pic-next-img a::attr(href)").extract_first()
        allnum = response.css(".ptitle em::text").extract_first()
        thisnum = next_url[-6:-5]
        if int(allnum) > int(thisnum):
            # 下一頁
            yield response.follow(next_url, callback=self.content)

圖片的連結和名稱已經獲取到了,接下來需要使用圖片通道下載圖片並儲存到本地,pipelines.py:

from scrapy.pipelines.images import ImagesPipeline
from scrapy.exceptions import DropItem
from scrapy.http import Request
import re

class MyImagesPipeline(ImagesPipeline):

    def get_media_requests(self, item, info):
        for image_url in item['ImgUrl']:
            yield Request(image_url,meta={'item':item['name']})

    def file_path(self, request, response=None, info=None):
        name = request.meta['item']
        name = re.sub(r'[?\\*|“<>:/()0123456789]', '', name)
        image_guid = request.url.split('/')[-1]
        filename = u'full/{0}/{1}'.format(name, image_guid)
        return filename

    def item_completed(self, results, item, info):
        image_path = [x['path'] for ok, x in results if ok]
        if not image_path:
            raise DropItem('Item contains no images')
        item['image_paths'] = image_path
        return item

最後在settings.py中設定儲存目錄並開啟通道:

# 設定圖片儲存路徑
IMAGES_STORE = 'F:/python/loldesk'
#啟動pipeline中介軟體
ITEM_PIPELINES = {
   'loldesk.pipelines.MyImagesPipeline': 300,
}

在根目錄下執行程式:

scrapy crawl loldesk

大功告成!!!一共抓取到128個資料夾

爬取性感女神照片教程,請移步:

相關推薦

python3爬蟲使用Scrapy框架英雄聯盟桌面桌布

使用Scrapy爬蟲抓取英雄聯盟高清桌面桌布 開始專案前需要安裝python3和Scrapy,不會的自行百度,這裡就不具體介紹了 首先,建立專案 scrapy startproject loldesk 生成專案的目錄結構 首先需要定義抓取元素,在item.p

Python爬蟲實戰| Python英雄聯盟桌布

先看一下最終爬取的效果,每個英雄的桌布都被爬取下來了: “黑暗之女 安妮”的12張桌布: 高清大圖: 下面開始正式教學! 版本:Python 3.5 工具:Jupyter notebook實現各個環節,最終整合成LOL_s

Python3.6實現scrapy框架資料並將資料插入MySQL與存入文件中

# -*- coding: utf-8 -*- # Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: http://doc.scrapy.org

Python3爬蟲五:網站資料並寫入excel

本文主要講解如何將網頁上的資料寫入到excel表中,因為我比較喜歡看小說,我們就以筆趣閣的小說資料為例,來說明怎麼把筆趣閣的小說關鍵資訊統計出來,比如:小說名、字數、作者、網址等。 根據之前的幾次爬蟲例項分析筆趣網原始碼知道,小說名在唯一的標籤h1中,因此可以

python3爬蟲使用Scrapy框架性感女神美女照片

使用Scrapy框架爬取性感女神美女照片其實很簡單哦,只需要5分鐘,爬取上萬張性感女神照片。 先給大家看一下成果吧: 激不激動,興不興奮,那就快來學一下吧: 開始專案前需要安裝python3和Scrapy,不會的自行百度,這裡就不具體介紹了 接下來是程式碼

scrapy框架微博spider檔案

# -*- coding: utf-8 -*- import scrapy from scrapy.settings import default_settings import json from ..items import WeiboItem import

python scrapy框架豆瓣top250電影篇一明確目標&&爬蟲編寫

1.明確目標 1.1在url上找到要爬取的資訊 1.2.確定了資訊,編寫items檔案    class DoubanItem(scrapy.Item):  &nb

python爬蟲(16)使用scrapy框架頂點小說網

本文以scrapy 框架來爬取整個頂點小說網的小說 1.scrapy的安裝 這個安裝教程,網上有很多的例子,這裡就不在贅述了 2.關於scrapy scrapy框架 是一個非常好的東西,能夠實現非同步爬取,節省時間,其實本文純粹的按照之前的思維來做, 也不是不可以,但是感

Python3爬蟲百度圖片

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author: OFZFZS # Datetime:2018/3/23 11:00 # Description: 百度圖片爬取 這裡只做了簡單處理,注意百度圖片返回的資料是aja

Python爬蟲scrapy框架動態網站——scrapy與selenium結合資料

 scrapy框架只能爬取靜態網站。如需爬取動態網站,需要結合著selenium進行js的渲染,才能獲取到動態載入的資料。如何通過selenium請求url,而不再通過下載器Downloader去請求這個url?方法:在request物件通過中介軟體的時候,在中介軟體內部開始

Python爬蟲【實戰篇】scrapy 框架某招聘網存入mongodb

建立專案 scrapy startproject zhaoping 建立爬蟲 cd zhaoping scrapy genspider hr zhaopingwang.com 目錄結構 items.py title = scrapy.Field()

python爬蟲十一:scrapy框架天氣,存入資料庫

小白學習:轉:https://zhuanlan.zhihu.com/p/268854121.cmd下scrapy startproject 專案名2.我一般都是在pycharm中編寫程式碼,所以我會在idea中引入專案,這裡不知道如何在pycharm中下載scrapy模組的童

[Python爬蟲]Scrapy框架bilibili個人資訊

啟動檔案main.py from scrapy.cmdline import execute execute('scrapy crawl bili_gr_xx'.split()) 執行spider下的爬取檔案 # -*- coding: ut

Python爬蟲利用BeautifulSoup豆瓣小說(三)——將小說信息寫入文件

設置 one 行為 blog 應該 += html uil rate 1 #-*-coding:utf-8-*- 2 import urllib2 3 from bs4 import BeautifulSoup 4 5 class dbxs: 6 7

scrapy框架映客直播用戶頭像

xpath print main back int open for pri nbsp 1. 創建項目 scrapy startproject yingke cd yingke 2. 創建爬蟲 scrapy genspider live 3. 分析http://www.i

皇冠體育二代信用盤帶手機版網絡爬蟲scrapy框架詳解

ML gin spi 通過 file 解決問題 有時 ide bee 網絡爬蟲之scrapy框架詳解twisted介紹 皇冠體育二代信用盤帶手機版 QQ2952777280Twisted是用Python實現的基於事件驅動的網絡引擎框架,scrapy正是依賴於twisted,

使用scrapy框架蜂鳥論壇的攝影圖片並下載到本地

utf 賦值 col 異常處理 創建文件夾 clas watermark follow ret 目標網站:http://bbs.fengniao.com/使用框架:scrapy 因為有很多模塊的方法都還不是很熟悉,所有本次爬蟲有很多代碼都用得比較笨,希望各位讀者能給處意見

scrapy框架豆瓣讀書(1)

tin rap 豆瓣 pipe 網頁 xpath from lin tor 1.scrapy框架 Scrapy,Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化

爬蟲scrapy框架

web 信息 .cn 入隊 依賴 下載器 新建 和數 類定義 一 scrapy框架簡介 1 介紹 Scrapy一個開源和協作的框架,其最初是為了頁面抓取 (更確切來說, 網絡抓取 )所設計的,使用它可以以快速、簡單、可擴展的方式從網站中提取所需的數據。但目前Scrapy的用

Python:scrapy框架校花網男神圖片儲存到本地

爬蟲四部曲,本人按自己的步驟來寫,可能有很多漏洞,望各位大神指點指點   1、建立專案 scrapy startproject xiaohuawang scrapy.cfg: 專案的配置檔案 xiaohuawang/: 該專案的python模組。之後您將在此加入程