午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

新手求教python3如何把dict循環(huán)寫(xiě)入csv文件(在進(jìn)行爬蟲(chóng)時(shí)遇到的問(wèn)題)?

瀏覽:169日期:2022-07-20 18:46:44

問(wèn)題描述

爬蟲(chóng)生成dict后,想將其寫(xiě)入csv文件,卻出錯(cuò)使用jupyter notebook,window環(huán)境。

具體代碼如下

import requestsfrom multiprocessing.dummy import Pool as ThreadPoolfrom lxml import etreeimport sysimport timeimport randomimport csvdef spider(url): header={’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36’ } timeout=random.choice(range(31,50)) html = requests.get(url,header,timeout=timeout) time.sleep(random.choice(range(8,16))) selector = etree.HTML(html.text) content_field = selector.xpath(’//*[@class='inner']/p[3]/p[2]/ul/li’) item ={} for each in content_field:g = each.xpath(’a/p[1]/p[1]/h3/span/text()’)go = each.xpath(’a/p[1]/p[2]/p/h3/text()’)h = each.xpath(’a/p[1]/p[2]/p/p/text()[1]’)j= each.xpath(’a/p[1]/p[1]/p/text()[2]’)ge = each.xpath(’a/p[1]/p[2]/p/p/text()[3]’)x = each.xpath(’a/p[1]/p[1]/p/text()[3]’)city = each.xpath(’a/p[1]/p[1]/p/text()[1]’)gg = each.xpath(’a/p[2]/span/text()’)item[’city’]=''.join(city)item[’hangye’]=''.join(hangye)item[’guimo’]=''.join(guimo)item[’gongsi’]=''.join(gongsi)item[’gongzi’]=''.join(gongzi)item[’jingyan’]=''.join(jingyan)item[’xueli’]=''.join(xueli)item[’gongzuoneirong’]=''.join(gongzuoneirong)fieldnames =[’city’,’hangye’,’guimo’,’gongsi’,’gongzi’,’jingyan’,’xueli’,’gongzuoneirong’]with open(’bj.csv’,’a’,newline=’’,errors=’ignore’)as f: f_csv=csv.DictWriter(f,fieldnames=fieldnames) f_csv.writeheader() f_csv.writerow(item)if __name__ == ’__main__’: pool = ThreadPool(4) f=open(’bj.csv’,’w’) page = [] for i in range(1,100):newpage = ’https://www.zhipin.com/c101010100/h_101010100/?query=%E6%95%B0%E6%8D%AE%E8%BF%90%E8%90%A5&page=’+str(i) + ’&ka=page-’ + str(i)page.append(newpage) results = pool.map(spider,page) pool.close() pool.join() f.close()

運(yùn)行上面代碼,提示錯(cuò)誤為

ValueError: too many values to unpack (expected 2)通過(guò)查詢(xún)?cè)蚴且獙ict遍歷,需要dict.items()的形式。但在上述代碼中如何實(shí)現(xiàn),一直沒(méi)有理順,求教各位

問(wèn)題解答

回答1:

不好意思哈,現(xiàn)在才有時(shí)間來(lái)回答你的問(wèn)題,看到你根據(jù)我的建議把代碼改過(guò)來(lái)了,下面我把改過(guò)的代碼貼出來(lái),我運(yùn)行過(guò),是沒(méi)問(wèn)題的

import requestsfrom multiprocessing.dummy import Poolfrom lxml import etreeimport timeimport randomimport csvdef spider(url): header = {’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36’ } timeout = random.choice(range(31, 50)) html = requests.get(url, headers=header, timeout=timeout) time.sleep(random.choice(range(8, 16))) selector = etree.HTML(html.text) content_field = selector.xpath(’//*[@class='inner']/p[3]/p[2]/ul/li’) item = {} for each in content_field:g = each.xpath(’a/p[1]/p[1]/h3/span/text()’)go = each.xpath(’a/p[1]/p[2]/p/h3/text()’)h = each.xpath(’a/p[1]/p[2]/p/p/text()[1]’)j = each.xpath(’a/p[1]/p[1]/p/text()[2]’)ge = each.xpath(’a/p[1]/p[2]/p/p/text()[3]’)x = each.xpath(’a/p[1]/p[1]/p/text()[3]’)city = each.xpath(’a/p[1]/p[1]/p/text()[1]’)gg = each.xpath(’a/p[2]/span/text()’)item[’city’] = ''.join(city)item[’hangye’] = ''.join(g)item[’guimo’] = ''.join(go)item[’gongsi’] = ''.join(h)item[’gongzi’] = ''.join(j)item[’jingyan’] = ''.join(ge)item[’xueli’] = ''.join(x)item[’gongzuoneirong’] = ''.join(gg)fieldnames = [’city’, ’hangye’, ’guimo’, ’gongsi’, ’gongzi’, ’jingyan’, ’xueli’, ’gongzuoneirong’]with open(’bj.csv’, ’a’, newline=’’, errors=’ignore’)as f: f_csv = csv.DictWriter(f, fieldnames=fieldnames) f_csv.writeheader() f_csv.writerow(item)if __name__ == ’__main__’: f = open(’bj.csv’, ’w’) page = [] for i in range(1, 100):newpage = ’https://www.zhipin.com/c101010100/h_101010100/?query=%E6%95%B0%E6%8D%AE%E8%BF%90%E8%90%A5&page=’ + str( i) + ’&ka=page-’ + str(i)page.append(newpage) print(page) pool = Pool(4) results = pool.map(spider, page) pool.close() pool.join() f.close()

這里主要是header,你原來(lái)是set類(lèi)型,我修改后是dict類(lèi)型

這里還需要給你一些建議

你的代碼是放到ide還是文本編輯器中運(yùn)行的?有的東西在ide下明顯會(huì)報(bào)錯(cuò)啊

建議新手從開(kāi)始學(xué)的時(shí)候就遵守PEP8規(guī)范,別養(yǎng)成了壞習(xí)慣,你看看你的命名

回答2:

item = {’a’:1, ’b’:2}fieldnames = [’a’, ’b’]with open(’test.csv’, ’a’) as f: f_csv = DictWriter(f, fieldnames=fieldnames) f_csv.writeheader() f_csv.writerow(item)

我這樣寫(xiě)并沒(méi)報(bào)錯(cuò)喔

writerow就是直接接收dict的吧,你這個(gè)問(wèn)題,我感覺(jué)是因?yàn)閕tem的key與你表頭不對(duì)應(yīng)

回答3:

因?yàn)樵?fields 中指定的某些列名在 item 中不存在

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美色综合天天久久综合精品 | 欧美在线不卡 | 太骚了全程淫语小说 | 久久xxxx| 国产成人一区二区三区 | 怡春院在线视频 | 天天有av| 中文字幕在线看 | 久久av免费观看 | 国产女人18毛片18精品 | 亚洲免费av一区二区 | 午夜影院视频 | 精品视频久久久 | 国产精品视频一区二区三区不卡 | 狠狠狠狠狠狠 | 亚洲国产视频网站 | 999久久久久久 | 免费日本黄色网址 | 粉嫩欧美一区二区三区 | 影音先锋国产在线 | 可以免费在线观看的av | 成av在线| 黄色在线观看国产 | 精品小视频 | 97超碰伊人 | 深夜成人福利视频 | 欧美日韩在线视频观看 | 成人在线观 | 免费一区 | 亚洲午夜视频 | 午夜aaa| 日本成人综合 | 开心春色激情网 | 日韩有码一区 | 日本成人毛片 | 91手机在线视频 | 国产又黄又粗又猛又爽的 | 亚洲卡一卡二卡三 | 欧美三级欧美成人高清 | 91av手机在线 | 亚洲精品久久久久avwww潮水 |