日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python pil保存图片_python爬取百度图片并保存到本地

發布時間:2025/3/21 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python pil保存图片_python爬取百度图片并保存到本地 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝scrapy

pip install Scrapy

進入終端,切換到自己項目代碼的工作空間下,執行

scrapy startproject baidu_pic_spider

生成如下工程文件:

images是自己創建的用于存放爬到的圖片目錄。

在spiders目錄下創建baidu_pic_spider爬蟲文件,search_word可改成自己需要的搜索詞。

baidu_pic_spider.py

import scrapy, json from scrapy.http import Request from PicSpider.items import PicItem # 導入itemclass PicSpider(scrapy.Spider):name = "pic_spider"allowed_domains = ["http://image.baidu.com/"]start_urls = ["http://image.baidu.com"]def parse(self, response): # 定義解析函數search_word = '哈士奇' # 查找詞,可修改baidu_pic_url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word={0}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=60&rn=30&gsm=3c&1507915209449=".format(search_word) # 百度圖片url# 將帶關鍵詞參數的url交給request函數解析,返回的response通過get_pic回調函數進一步分析yield Request(baidu_pic_url, meta={"search_word": search_word}, callback=self.get_pic, dont_filter=True)def get_pic(self, response): # 從圖片list中獲取每個pic的信息item = PicItem() # 實例化itemresponse_json = response.text # 存儲返回的json數據response_dict = json.loads(response_json) # 轉化為字典response_dict_data = response_dict['data'] # 圖片的有效數據在data參數中for pic in response_dict_data: # pic為每個圖片的信息數據,dict類型if pic:item['search_word'] = response.meta['search_word'] # 搜索關鍵詞賦值item['pic_url'] = [pic['middleURL']] # 百度圖片搜索結果url (setting中pic_url應該為數組形式)item['pic_name'] = pic['fromPageTitleEnc'] # 百度圖片搜索結果對應的titleyield item

新建main.py文件,方便在pycharm中運行和調試爬蟲。

main.py

# _*_ coding: utf-8 _*_from scrapy.cmdline import execute import sys import os sys.path.append(os.path.dirname(os.path.abspath(__file__))) #設置工程目錄 print(os.path.dirname(os.path.abspath(__file__)))execute(["scrapy","crawl","pic_spider"]).strip()

定義item字段

item.py

# -*- coding: utf-8 -*-import scrapyclass PicItem(scrapy.Item) :search_word = scrapy.Field() #搜索關鍵字pic_name = scrapy.Field() #圖片標題pic_url = scrapy.Field() #圖片urlpass

定義pipeline

pipeline.py

# -*- coding: utf-8 -*-class PicspiderPipeline(object):def process_item(self, item, spider):return item

在setting中對應部分修改ITEM_PIPELINES,并增加圖片處理代碼

settings.py

ITEM_PIPELINES = {'PicSpider.pipelines.PicspiderPipeline': 300,'scrapy.pipelines.images.ImagesPipeline' : 1, } #配置pipeline,設定需要進行處理的圖片路徑 IMAGES_URLS_FIELD = "pic_url" # 設置圖片下載后的存儲路徑,放到工程目錄下images文件夾 # 獲取當前目錄絕對路徑 project_dir = os.path.abspath(os.path.dirname(__file__)) # 獲取images存儲路徑 IMAGES_STORE = os.path.join(project_dir,'images')# 設定處理圖片的最小高度,寬度 IMAGES_MIN_HEIGHT = 100 IMAGES_MIN_WIDTH = 100

運行

run main.py

總結

以上是生活随笔為你收集整理的python pil保存图片_python爬取百度图片并保存到本地的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。