国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

scrapy簡單學習5—圖片下載,爬取妹子圖

JerryZou / 2789人閱讀

摘要:學習網站爬蟲,整站爬取妹子圖定義爬取的內容的編寫提供了一種便捷的方式填充抓取到的是頁面源代碼,載入每個連接,用屬性請求連接,返回請求獲取頁碼集合打印頁碼如果頁碼集合圖片連接讀取頁碼集合的倒數第二個頁碼圖片連接替換成空返回請求用載

學習網站:爬蟲,整站爬取妹子圖

1.item.py(定義爬取的內容)
import scrapy


class MeizituItem(scrapy.Item):
    url = scrapy.Field()
    name = scrapy.Field()
    tags = scrapy.Field()
    image_urls = scrapy.Field()
    images = scrapy.Field()
2.spider的編寫
# -*- coding: utf-8 -*-
import scrapy
from scrapy.selector import Selector
#Item Loaders提供了一種便捷的方式填充抓取到的 :Items
from scrapy.contrib.loader import ItemLoader, Identity
from meizitu.items import MeizituItem

class MeiziSpider(scrapy.Spider):
    name = "meizi"
    allowed_domains = ["meizitu.com"]
    start_urls = (
        "http://www.meizitu.com/",
    )

    def parse(self, response):
        #sel是頁面源代碼,載入scrapy.selector
        sel = Selector(response)
        #每個連接,用@href屬性
        for link in sel.xpath("http://h2/a/@href").extract():
            #請求=Request(連接,parese_item)
            request = scrapy.Request(link, callback=self.parse_item)
            yield request#返回請求
        #獲取頁碼集合
        pages = sel.xpath("http://*[@id="wp_page_numbers"]/ul/li/a/@href").extract()
        print("pages: %s" % pages)#打印頁碼
        if len(pages) > 2:#如果頁碼集合>2
            page_link = pages[-2]#圖片連接=讀取頁碼集合的倒數第二個頁碼
            page_link = page_link.replace("/a/", "")#圖片連接=page_link(a替換成空)
            request = scrapy.Request("http://www.meizitu.com/a/%s" % page_link, callback=self.parse)
            yield request#返回請求

    def parse_item(self, response):
        #l=用ItemLoader載入MeizituItem()
        l = ItemLoader(item=MeizituItem(), response=response)
        #名字
        l.add_xpath("name", "http://h2/a/text()")
        #標簽
        l.add_xpath("tags", "http://div[@id="maincontent"]/div[@class="postmeta  clearfix"]/div[@class="metaRight"]/p")
        #圖片連接
        l.add_xpath("image_urls", "http://div[@id="picture"]/p/img/@src", Identity())
        #url
        l.add_value("url", response.url)
        
        return l.load_item()
3.pipeline的編寫(下載圖片,新增圖片)
# -*- 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/en/latest/topics/item-pipeline.html
import requests
from meizitu import settings
import os

#圖片下載類
class ImageDownloadPipeline(object):
    def process_item(self, item, spider):
        if "image_urls" in item:#如何‘圖片地址’在項目中
            images = []#定義圖片空集
            
            dir_path = "%s/%s" % (settings.IMAGES_STORE, spider.name)

            if not os.path.exists(dir_path):
                os.makedirs(dir_path)
            for image_url in item["image_urls"]:
                us = image_url.split("/")[3:]
                image_file_name = "_".join(us)
                file_path = "%s/%s" % (dir_path, image_file_name)
                images.append(file_path)
                if os.path.exists(file_path):
                    continue

                with open(file_path, "wb") as handle:
                    response = requests.get(image_url, stream=True)
                    for block in response.iter_content(1024):
                        if not block:
                            break

                        handle.write(block)

            item["images"] = images
        return item
4.settings
BOT_NAME = "meizitu"

SPIDER_MODULES = ["meizitu.spiders"]
NEWSPIDER_MODULE = "meizitu.spiders"
#載入ImageDownLoadPipeline類
ITEM_PIPELINES = {"meizitu.pipelines.ImageDownloadPipeline": 1}
#圖片儲存
IMAGES_STORE = "."
結果

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44162.html

相關文章

  • Scrapy 實戰之爬取妹子

    摘要:很多人學習爬蟲的第一驅動力就是爬取各大網站的妹子圖片,比如比較有名的。最后我們只需要運行程序,即可執行爬取,程序運行命名如下完整代碼我已上傳到微信公眾號后臺,在癡海公眾號后臺回復即可獲取。本文首發于公眾號癡海,后臺回復即可獲取最新編程資源。 showImg(https://segmentfault.com/img/remote/1460000016780800); 閱讀文本大概需要 1...

    Achilles 評論0 收藏0
  • Python爬蟲 - scrapy - 爬取妹子 Lv2

    摘要:前言這個文章是延續之前爬取妹子圖的延續,之前的爬蟲可以爬取一個頁面的圖片,爬取一次大概張圖片的樣子,按照之前的計劃,本次要進一步完善爬蟲,爬取妹子圖全網圖片。做完上述改動后,爬蟲運行基本正常,但是爬取的速度有點慢,個小時大概爬取了張圖片。 0. 前言 這個文章是延續之前《爬取妹子圖 Lv1》的延續,之前的爬蟲可以爬取一個頁面的圖片,爬取一次大概400張圖片的樣子,按照之前的計劃,本次要...

    Backache 評論0 收藏0
  • Python爬蟲 - scrapy - 爬取妹子 Lv1

    摘要:爬取妹子圖的實例打算分成三部分來寫,嘗試完善實用性。中的每一個子項都是一個標簽。這個說明的前提是不自定義當爬蟲完成的模型數據采集后,會自動將發送給處理。 0. 前言 這是一個利用python scrapy框架爬取網站圖片的實例,本人也是在學習當中,在這做個記錄,也希望能幫到需要的人。爬取妹子圖的實例打算分成三部分來寫,嘗試完善實用性。 系統環境 System Version:Ubunt...

    el09xccxy 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • scrapy 實戰練習

    摘要:爬取百思不得姐首先一步一步來,我們先從爬最簡單的文本開始。將百思不得姐段子保存到中別忘了將管道加到配置文件中。雖然我只是簡單的爬了百思不得姐,不過這些方法可以應用到其他方面,爬取更多更有用的數據。 前一篇文章介紹了很多關于scrapy的進階知識,不過說歸說,只有在實際應用中才能真正用到這些知識。所以這篇文章就來嘗試利用scrapy爬取各種網站的數據。 爬取百思不得姐 首先一步一步來,我...

    betacat 評論0 收藏0

發表評論

0條評論

JerryZou

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<