91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬蟲怎么使用內置的scrapy內置下載文件

發布時間:2021-04-28 13:57:23 來源:億速云 閱讀:202 作者:小新 欄目:編程語言

這篇文章主要介紹python爬蟲怎么使用內置的scrapy內置下載文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

一、為什么要選擇scrapy內置的下載文件?

1、避免重新下載最近已經下載過的數據;

2、可以方便的指定文件存儲的路徑;

3、可以將下載的圖片轉換成通用的格式,如:png,jpg等;

4、可以方便地生成縮略圖;

5、可以方便地檢測圖片的寬和?,確保它們滿足最小限制;

6、異步下載,效率非常高。

二、使用images pipeline下載文件步驟如下:

第一步,在items文件中定義兩個屬性,分別為image_urls以及images,這兩個屬性名字不能隨意修改。

image_urls = scrapy.Field() # 圖片的url
images = scrapy.Field() # 路徑

第二步,編寫爬蟲程序,需要注意的是image_urls用來存儲需要下載文件的url鏈接,需要給?個列表;

pic_url = pic.xpath('./a/img/@src').extract_first()
pic_url = response.urljoin(pic_url)
item['image_urls'] = [pic_url]

第三步,在settings中指定路徑IMAGES_STORE = xxxxxxx,當圖片下載完成后,scrapy會把圖片下載的相關信息存儲到item的images屬性中,如下載路徑、下載的url和圖片校驗碼等;

import os
IMAGES_STORE = os.path.join(os.path.dirname(__file__), 'result_pic')

第四步,在settings中做配置,開啟內置的圖片管道,此時可以不用自帶的管道。

'scrapy.pipelines.images.ImagesPipeline':1

三、具體代碼

# 爬蟲代碼
import scrapy
from day21.vehicle_home.vehicle_home.items import VehicleHomeItem

class VehPicSpider(scrapy.Spider):
    name = 'veh_pic'
    allowed_domains = ['car.autohome.com.cn']
    base_url = 'https://car.autohome.com.cn/photolist/series/18/p{}/'
    start_urls = [base_url.format(1)]

    def parse(self, response):
        # 獲取圖片標簽列表
        pic_lists = response.xpath('//ul[@id="imgList"]/li')
        for pic in pic_lists:
            pic_url = pic.xpath('./a/img/@src').extract_first()
            # 上述獲取的url需要進一步補全
            pic_url = response.urljoin(pic_url)
            item = VehicleHomeItem()
            item['image_urls'] = [pic_url]  # 傳遞列表
            print(item)
            yield item

        # 翻頁邏輯
        for page in range(2, 3):
            next_url = self.base_url.format(page)
            yield scrapy.Request(next_url)

# settings 代碼,只給出關鍵部分
# 開啟內置管道
ITEM_PIPELINES = {
   # 'vehicle_home.pipelines.VehicleHomePipeline': 300,
    'scrapy.pipelines.images.ImagesPipeline': 1,
}
# 指定圖片存放路徑
import os
IMAGES_STORE = os.path.join(os.path.dirname(__file__), 'result_pic')

# items 代碼
import scrapy
class VehicleHomeItem(scrapy.Item):
    image_urls = scrapy.Field()  # 圖片的url
    images = scrapy.Field()  # 圖片路徑

以上是“python爬蟲怎么使用內置的scrapy內置下載文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正阳县| 色达县| 胶州市| 连州市| 乐亭县| 绥棱县| 南皮县| 图们市| 镇赉县| 青海省| 开封市| 图木舒克市| 嘉兴市| 罗平县| 黄骅市| 金坛市| 社旗县| 永平县| 黄大仙区| 万年县| 五家渠市| 故城县| 武川县| 淮安市| 莱州市| 泰来县| 云和县| 深泽县| 呼图壁县| 玉树县| 社会| 贵南县| 花垣县| 夏津县| 东丽区| 石渠县| 嵊泗县| 武功县| 济南市| 尼木县| 焦作市|