日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

python - scrapy pipeline報(bào)錯(cuò)求助

瀏覽:188日期:2022-08-09 08:55:51

問題描述

由于不太清楚傳輸?shù)臋C(jī)制,卡在SCRAPY傳輸?shù)倪@個(gè)問題上近半個(gè)月,翻閱了好多資料,還是不懂,基礎(chǔ)比較差所以上來(lái)求助各位老師!不涉及自定義就以SCRAPY默認(rèn)的格式為例spider return的東西需要什么樣的格式?dict?{a:1,b:2,.....}還是[{a:1,aa:11},{b:2,bb:22},{......}]return的東西傳去哪了?是不是下面代碼的item?

class pipeline : def process_item(self, item, spider):

我真的是很菜,但是我很想學(xué)希望能得到各位老師的幫助!下面是我的代碼,希望能指出缺點(diǎn)

spider:

# -*- coding: utf-8 -*-import scrapyfrom pm25.items import Pm25Itemimport reclass InfospSpider(scrapy.Spider): name = 'infosp' allowed_domains = ['pm25.com'] start_urls = [’http://www.pm25.com/rank/1day.html’, ] def parse(self, response):item = Pm25Item()re_time = re.compile('d+-d+-d+')date = response.xpath('/html/body/p[4]/p/p/p[2]/span').extract()[0] #單獨(dú)解析出DATE# items = []selector = response.selector.xpath('/html/body/p[5]/p/p[3]/ul[2]/li') #從response里確立解析范圍for subselector in selector: #通過范圍逐條解析 try: #防止[0]報(bào)錯(cuò)rank = subselector.xpath('span[1]/text()').extract()[0] quality = subselector.xpath('span/em/text()')[0].extract()city = subselector.xpath('a/text()').extract()[0]province = subselector.xpath('span[3]/text()').extract()[0]aqi = subselector.xpath('span[4]/text()').extract()[0]pm25 = subselector.xpath('span[5]/text()').extract()[0] except IndexError:print(rank,quality,city,province,aqi,pm25) item[’date’] = re_time.findall(date)[0] item[’rank’] = rank item[’quality’] = quality item[’province’] = city item[’city’] = province item[’aqi’] = aqi item[’pm25’] = pm25 # items.append(item) yield item #這里不懂該怎么用,出來(lái)的是什么格式, #有的教程會(huì)return items,所以希望能得到指點(diǎn)

pipeline:

import timeclass Pm25Pipeline(object): def process_item(self, item, spider):today = time.strftime('%y%m%d',time.localtime())fname = str(today) + '.txt'with open(fname,'a') as f: for tmp in item: #不知道這里是否寫的對(duì), #個(gè)人理解是spider return出來(lái)的item是yiled dict #[{a:1,aa:11},{b:2,bb:22},{......}]f.write(tmp['date'] + ’t’ +tmp['rank'] + ’t’ +tmp['quality'] + ’t’ +tmp['province'] + ’t’ +tmp['city'] + ’t’ +tmp['aqi'] + ’t’ +tmp['pm25'] + ’n’) f.close()return item

items:

import scrapyclass Pm25Item(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() date = scrapy.Field() rank = scrapy.Field() quality = scrapy.Field() province = scrapy.Field() city = scrapy.Field() aqi = scrapy.Field() pm25 = scrapy.Field() pass

部分運(yùn)行報(bào)錯(cuò)代碼:

Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’30’, ’city’: ’新疆’, ’date’: ’2017-04-02’, ’pm25’: ’13 ’, ’province’: ’伊犁哈薩克州’, ’quality’: ’優(yōu)’, ’rank’: ’357’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’28’, ’city’: ’西藏’, ’date’: ’2017-04-02’, ’pm25’: ’11 ’, ’province’: ’林芝’, ’quality’: ’優(yōu)’, ’rank’: ’358’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’28’, ’city’: ’云南’, ’date’: ’2017-04-02’, ’pm25’: ’11 ’, ’province’: ’麗江’, ’quality’: ’優(yōu)’, ’rank’: ’359’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’27’, ’city’: ’云南’, ’date’: ’2017-04-02’, ’pm25’: ’15 ’, ’province’: ’玉溪’, ’quality’: ’優(yōu)’, ’rank’: ’360’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’26’, ’city’: ’云南’, ’date’: ’2017-04-02’, ’pm25’: ’10 ’, ’province’: ’楚雄州’, ’quality’: ’優(yōu)’, ’rank’: ’361’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’24’, ’city’: ’云南’, ’date’: ’2017-04-02’, ’pm25’: ’11 ’, ’province’: ’迪慶州’, ’quality’: ’優(yōu)’, ’rank’: ’362’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.scraper] ERROR: Error processing {’aqi’: ’22’, ’city’: ’云南’, ’date’: ’2017-04-02’, ’pm25’: ’9 ’, ’province’: ’怒江州’, ’quality’: ’優(yōu)’, ’rank’: ’363’}Traceback (most recent call last): File 'd:python35libsite-packagestwistedinternetdefer.py', line 653, in _runCallbacks current.result = callback(current.result, *args, **kw) File 'D:pypropm25pm25pipelines.py', line 23, in process_item tmp['pm25'] + ’n’TypeError: string indices must be integers2017-04-03 10:23:14 [scrapy.core.engine] INFO: Closing spider (finished)2017-04-03 10:23:14 [scrapy.statscollectors] INFO: Dumping Scrapy stats:{’downloader/request_bytes’: 328, ’downloader/request_count’: 1, ’downloader/request_method_count/GET’: 1, ’downloader/response_bytes’: 38229, ’downloader/response_count’: 1, ’downloader/response_status_count/200’: 1, ’finish_reason’: ’finished’, ’finish_time’: datetime.datetime(2017, 4, 3, 2, 23, 14, 972356), ’log_count/DEBUG’: 2, ’log_count/ERROR’: 363, ’log_count/INFO’: 7, ’response_received_count’: 1, ’scheduler/dequeued’: 1, ’scheduler/dequeued/memory’: 1, ’scheduler/enqueued’: 1, ’scheduler/enqueued/memory’: 1, ’start_time’: datetime.datetime(2017, 4, 3, 2, 23, 13, 226730)}2017-04-03 10:23:14 [scrapy.core.engine] INFO: Spider closed (finished)

希望能到到各位老師的幫助再次感謝~!

問題解答

回答1:

直接寫入就行,不用做循環(huán),item是單個(gè)處理,并不是你想的那樣的列表:

import timeclass Pm25Pipeline(object): def process_item(self, item, spider):today = time.strftime('%y%m%d', time.localtime())fname = str(today) + '.txt'with open(fname, 'a') as f: f.write(item['date'] + ’t’ + item['rank'] + ’t’ + item['quality'] + ’t’ + item['province'] + ’t’ + item['city'] + ’t’ + item['aqi'] + ’t’ + item['pm25'] + ’n’ )f.close()return item回答2:

搜索:TypeError: string indices must be integers,搞清楚什么問題定位行數(shù),解決問題

回答3:

Scrapy的Item類似python字典,擴(kuò)展了一些功能而已。

Scrapy的設(shè)計(jì),每生成一個(gè)Item,即可傳遞到pipeline中處理。你在里面寫的for tmp in item循環(huán)的是item字典的鍵了,鍵應(yīng)是字符串,再用__getitem__語(yǔ)法就會(huì)提示你使用的不是數(shù)字。

回答4:

你可以把一個(gè)item看作一個(gè)字典,實(shí)際它就是dict類的派生類。你在pipeline里對(duì)這個(gè)item直接遍歷,取到的tmp實(shí)際是都是字典的鍵,類型是字符串,所以tmp[’pm25’]這種操作報(bào)出TypeError:string類型的對(duì)象索引必須是int型。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久av福利在线观看| av免费不卡国产观看| 精品高清久久| 超碰99在线| sm捆绑调教国产免费网站在线观看| 国产精品**亚洲精品| 麻豆精品新av中文字幕| 美女在线视频一区| 精品久久电影| av资源新版天堂在线| 欧美国产91| 久久人人精品| 手机精品视频在线观看| 亚洲bt欧美bt精品777| 日韩一二三区在线观看| 在线精品亚洲| 国产精品尤物| 日韩有吗在线观看| 不卡中文字幕| 久久久蜜桃一区二区人| 国产精品videossex久久发布 | 国产成人免费精品| 国产麻豆一区| 国产日韩欧美一区二区三区 | 国产精品亚洲欧美一级在线 | 国产精品亚洲产品| 少妇精品久久久一区二区| 一本色道精品久久一区二区三区| 成人国产精品一区二区免费麻豆| 国产欧美高清| 国产精品99精品一区二区三区∴ | 精品一区视频| 亚洲午夜国产成人| av高清不卡| 国产麻豆综合| 波多视频一区| 国产精品亚洲综合色区韩国| 久久高清精品| 99riav1国产精品视频| 亚洲一区观看| 少妇精品久久久一区二区| 欧美色综合网| 成人午夜网址| 国产综合精品| 中文字幕视频精品一区二区三区 | 蜜桃免费网站一区二区三区| 视频一区免费在线观看| 亚洲精品看片| 欧美国产日本| 久久狠狠久久| 日韩不卡视频在线观看| 国产婷婷精品| 国产精品中文| 欧美精品一区二区久久| 日韩va亚洲va欧美va久久| 成人高清一区| 免费欧美在线视频| 欧美极品中文字幕| 91成人精品在线| 国产精品久久777777毛茸茸| 国产日韩免费| 精品国产欧美日韩一区二区三区| 视频一区二区中文字幕| 影音先锋久久精品| 午夜久久av| 免费一级欧美在线观看视频| 久久爱www.| 在线看片一区| 日韩综合一区| 老鸭窝毛片一区二区三区| 欧美日韩国产探花| 日本综合视频| 精品视频免费| 欧美大黑bbbbbbbbb在线| 亚洲综合电影一区二区三区| 日本强好片久久久久久aaa| 国产精品亚洲欧美日韩一区在线| 国产精品igao视频网网址不卡日韩| 美女高潮久久久| 激情综合在线| 久久亚洲色图| 欧美色图国产精品| 欧美黄色精品| 欧美日韩亚洲一区| 在线免费观看亚洲| 99视频一区| av亚洲在线观看| 精品成人免费一区二区在线播放| 国产欧美日韩一区二区三区在线| 亚洲午夜国产成人| 丝袜诱惑制服诱惑色一区在线观看 | 美女91精品| 亚洲福利免费| 久久久久.com| 日韩中文视频| 99久久婷婷这里只有精品| 9999国产精品| 日本精品不卡| 国产精品字幕| 日韩久久电影| 久久在线视频免费观看| 日韩理论视频| 精品丝袜在线| 亚洲国产不卡| 鲁大师影院一区二区三区| 日韩一区精品视频| 亚洲精品乱码日韩| 日韩一二三区在线观看| 久久国产精品色av免费看| 国产精品一区二区99| 精品网站aaa| 99热精品久久| 一区二区国产在线| 国产精品伊人| 福利视频一区| 亚洲精品网址| 亚洲深深色噜噜狠狠爱网站 | 欧美日韩视频| 亚洲开心激情| 欧美激情五月| 99视频精品全国免费| 蜜臀av一区二区三区| 久久国产婷婷国产香蕉| 中文字幕色婷婷在线视频| 亚洲一级黄色| 中文字幕一区二区三区日韩精品| 在线免费观看亚洲| 国产不卡精品| 美国三级日本三级久久99| 麻豆视频一区二区| 亚洲在线电影| 色一区二区三区四区| 免费在线观看一区二区三区| 午夜在线精品偷拍| 高潮久久久久久久久久久久久久| 夜久久久久久| 一本综合精品| 午夜国产精品视频| 捆绑调教日本一区二区三区| 亚洲精品第一| 视频一区中文字幕国产| 都市激情国产精品| 日韩成人精品一区二区| 91一区二区三区四区| a国产在线视频| 日韩成人亚洲| 亚洲精品888| 丝袜亚洲精品中文字幕一区| 日韩中文字幕一区二区三区| 性色一区二区| 亚洲人成精品久久久| 婷婷亚洲成人| 欧美日韩91| 国产在线日韩精品| 91精品一区二区三区综合在线爱| 欧美亚洲国产一区| 麻豆成人av在线| 久久亚洲资源中文字| 麻豆国产欧美日韩综合精品二区| 国产日韩中文在线中文字幕 | 超碰成人av| 精品国产亚洲日本| 精品三级av| 国产美女高潮在线| 成人日韩精品| 国精品一区二区| 蜜桃视频一区二区三区在线观看| 日韩一区网站| 国产精品嫩模av在线| 国产精品1区在线| 欧美日韩视频免费观看| 婷婷色综合网| 日韩动漫一区| 福利一区视频| 国产精品女主播一区二区三区| 蜜桃免费网站一区二区三区| 欧美一区二区三区免费看| 精品一区二区三区的国产在线观看| 日韩欧美在线中字| 一区二区国产在线观看| 国产精品www994| 999精品色在线播放| 视频在线观看一区| 国产乱论精品| 日韩中文在线播放| 综合一区av| 亚洲国产成人二区| 蜜桃久久av一区| 成人在线免费观看网站| 在线视频亚洲欧美中文| 成人亚洲一区| 青青草国产精品亚洲专区无| 日韩不卡免费高清视频| 日韩高清二区| 99视频精品全国免费| 麻豆国产精品一区二区三区| 亚洲欧洲一区| 成人美女视频| 日韩精品高清不卡| 国产一区欧美|