国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python Scrapy圖片爬取原理及代碼實例

瀏覽:111日期:2022-07-21 14:47:08

1.在爬蟲文件中只需要解析提取出圖片地址,然后將地址提交給管道

在管道文件對圖片進行下載和持久化存儲

class ImgSpider(scrapy.Spider): name = ’img’ # allowed_domains = [’www.xxx.com’] start_urls = [’http://www.521609.com/daxuemeinv/’] url = ’http://www.521609.com/daxuemeinv/list8%d.html’ pageNum = 1 def parse(self, response): li_list = response.xpath(’//*[@id='content']/div[2]/div[2]/ul/li’) for li in li_list: img_src = ’http://www.521609.com’+li.xpath(’./a[1]/img/@src’).extract_first() item = ImgproItem() item[’src’] = img_src yield item

2.配置文件修改

配置文件要增加IMAGES_STORE = ’./imgsLib’表明圖片存放的路徑

3.管道類的修改

原本管道類繼承的object,處理item對象使用時process_item方法,該方法不能發(fā)送請求,要想對圖片地址發(fā)送請求,需要繼承ImagesPipeline類,然后重寫該類中的三個方法:get_media_requests,file_path,item_completed

from scrapy.pipelines.images import ImagesPipelineimport scrapyclass ImgproPipeline(ImagesPipeline): #對某一個媒體資源進行請求發(fā)送 #item就是接收到的spider提交過來的item def get_media_requests(self, item, info): yield scrapy.Request(item[’src’]) #制定媒體數(shù)據(jù)存儲的名稱 def file_path(self, request, response=None, info=None): name = request.url.split(’/’)[-1] print(’正在下載:’,name) return name #將item傳遞給下一個即將給執(zhí)行的管道類 def item_completed(self, results, item, info): return item

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 英吉沙县| 东方市| 涡阳县| 雅安市| 贵阳市| 绥芬河市| 石河子市| 收藏| 穆棱市| 阿拉善右旗| 石阡县| 贵南县| 石屏县| 临城县| 大渡口区| 大方县| 汾西县| 开阳县| 新泰市| 正安县| 曲松县| 崇州市| 金川县| 屏东市| 聂拉木县| 石台县| 屯门区| 合作市| 麻栗坡县| 那曲县| 汝南县| 湄潭县| 临汾市| 江川县| 洮南市| 凤庆县| 阜阳市| 榆林市| 苗栗县| 社会| 吉林市|