Python網(wǎng)絡(luò)爬蟲(chóng)中爬到的數(shù)據(jù)怎么分列分行寫入csv文件中
回復(fù)“資源”即可獲贈(zèng)Python學(xué)習(xí)資料
大家好,我是皮皮。
一、前言
前幾天在Python白銀交流群有個(gè)叫【?】的粉絲問(wèn)了一個(gè)Python網(wǎng)絡(luò)爬蟲(chóng)中爬到的數(shù)據(jù)怎么分列分行寫入csv文件中的問(wèn)題,這里拿出來(lái)給大家分享下,一起學(xué)習(xí)下。

現(xiàn)在的狀態(tài)是下圖這樣的。

代碼截圖如下:
問(wèn)題補(bǔ)充:

二、解決過(guò)程
這里【瑜亮老師】給出了一個(gè)代碼,如下所示:
et?=?etree.HTML(resp)
tr_list?=?et.xpath('//table//tr')
for?i?in?tr_list:
????#?獲取電影信息,并去掉前面的多余的那個(gè)圓點(diǎn)
????data?=?",?".join(i.xpath('./td//text()')[1:])?+?'\n'
????#?追加寫入文件
????with?open('電影.csv',?'a',?encoding='utf-8')?as?f:
????????f.write(data)
這個(gè)代碼親測(cè)好使,不過(guò)還有更好的思路。
這里【月神】給出了一個(gè)代碼,如下所示:
import?requests
from?lxml?import?etree
url?=?'https://piaofang.maoyan.com/session'
headers?=?{'User-Agent':?'Mozilla/5.0?(Windows?NT?6.1;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?'
?????????????????????????'Chrome/100.0.4896.75?Safari/537.36?Edg/100.0.1185.36?',
???????????'Referer':?'https://piaofang.maoyan.com/box-office?ver=normal'
???????????}
resp?=?requests.get(url=url,?headers=headers).text
et?=?etree.HTML(resp)
pf_data?=?et.xpath('//div[@class="tiny-table?tiny-table-no-border?tiny-table-middle"]//td//text()')
##?保存csv文件部分
pf_string?=?''.join(f'\n{i},'?if?i?==?'?'?else?f'{i},'?for?i?in?pf_data).strip('\n').split('\n')
with?open('pf_maoyan.csv',?'w',?encoding='utf-8-sig')?as?f:
????for?i?in?pf_string:
????????f.writelines(i.strip(',')+'\n')
你以為這就完事了?還有更好的方法在后頭呢。下面的這個(gè)代碼是不用xpath寫的,改用pandas處理網(wǎng)頁(yè)結(jié)構(gòu)。
import?requests
import?pandas?as?pd
url?=?'https://piaofang.maoyan.com/session'
headers?=?{'User-Agent':?'Mozilla/5.0?(Windows?NT?6.1;?Win64;?x64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?'
?????????????????????????'Chrome/100.0.4896.75?Safari/537.36?Edg/100.0.1185.36?',
???????????'Referer':?'https://piaofang.maoyan.com/box-office?ver=normal'
???????????}
resp?=?requests.get(url=url,?headers=headers).text
#?利用pandas保存csv文件
pd.read_html(resp)[0].to_csv('pf_maoyan.csv',?encoding='utf-8-sig',?index=False,?header=None)
小伙伴們直呼好家伙。
當(dāng)然了,這個(gè)網(wǎng)站可以抓取的方法有很多,感興趣的小伙伴們也可以試試看,就當(dāng)練習(xí)下了。

三、總結(jié)
大家好,我是皮皮。這篇文章主要分享了Python網(wǎng)絡(luò)爬蟲(chóng)中爬到的數(shù)據(jù)怎么分列分行寫入csv文件中的問(wèn)題,文中針對(duì)該問(wèn)題給出了具體的解析和代碼演示,幫助粉絲順利解決了問(wèn)題。
最后感謝粉絲【?】提問(wèn),感謝【月神】、【瑜亮老師】給出的具體解析和代碼演示,感謝粉絲【鄧旺】、【千葉ほのお】、【Jason】、【月牙彎彎】等人參與學(xué)習(xí)交流。
小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過(guò)程中,有遇到任何問(wèn)題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
