欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python3操作Excel-以豆瓣圖書(shū)Top250為例

系統(tǒng) 1608 0

本文利用Python3爬蟲(chóng)抓取豆瓣圖書(shū)Top250,并利用xlwt模塊將其存儲(chǔ)至excel文件,圖片下載到相應(yīng)目錄。旨在進(jìn)行更多的爬蟲(chóng)實(shí)踐練習(xí)以及模塊學(xué)習(xí)。

工具

1.Python 3.5

2.BeautifulSoup、xlwt模塊

開(kāi)始動(dòng)手

首先查看目標(biāo)網(wǎng)頁(yè)的url:?https://book.douban.com/top250?start=0, 然后我嘗試了在代碼里直接通過(guò)字符串連接僅改變”start=“后面的數(shù)字的方法來(lái)遍歷所有的250/25 = 10頁(yè)內(nèi)容,但是后來(lái)發(fā)現(xiàn)不行,那樣的話出來(lái)的永遠(yuǎn)是第一頁(yè),于是通過(guò)瀏覽器的F12開(kāi)發(fā)者工具檢查,發(fā)現(xiàn)start是要post上去的,如下圖:

所以建立一個(gè)postData的dict:

postData?=?{"start": i}?#i為0,25,...225

每次將其post上去即可解決返回都是第一頁(yè)的問(wèn)題。

分析網(wǎng)頁(yè)可知,一本書(shū)的羅列信息以及要爬取的點(diǎn)如下圖:

從上到下需要爬取的信息有:

1. 圖書(shū)鏈接地址

2. 封面圖片鏈接 ?我到時(shí)候會(huì)將此鏈接打開(kāi),下載圖片到本地 (download_img函數(shù))

3. 書(shū)名 ?要注意的是這里書(shū)名取title的內(nèi)容而不去a標(biāo)簽中的string信息,因?yàn)閟tring信息可能包含諸如空格、換行符之類(lèi)的字符,給處理造成麻煩,直接取title格式正確且無(wú)需額外處理。

4. 別名 ?這里主要是副標(biāo)題或者是外文名,有的書(shū)沒(méi)有這項(xiàng),那么我們就寫(xiě)入一個(gè)“無(wú)”,千萬(wàn)不可以寫(xiě)入一個(gè)空串,否則的話會(huì)出現(xiàn)故障,我下面會(huì)提到。

5. 出版信息 ?如作者、譯者、出版社、出版年份、價(jià)格, 這也是重要信息之一,否則有多本書(shū)名字一致可能會(huì)無(wú)法分辨

6. 評(píng)分

7. 評(píng)價(jià)人數(shù)

除此之外,我還爬取一個(gè)“ 標(biāo)簽 ”信息,它在圖書(shū)鏈接打開(kāi)之后的網(wǎng)頁(yè)中,找到它的位置如下:

爬到標(biāo)簽以后將它們用逗號(hào)連接起來(lái)作為標(biāo)簽值。

好了,既然明確了要爬的指標(biāo),以及了解了網(wǎng)頁(yè)結(jié)構(gòu)以及指標(biāo)所在的html中的位置,那么就可以寫(xiě)出如下代碼:

Python3操作Excel-以豆瓣圖書(shū)Top250為例_第1張圖片

通過(guò)xlwt模塊存入xls文件及其問(wèn)題

爬取下來(lái)了以后當(dāng)然要考慮存儲(chǔ),這時(shí)我想試試把它存到Excel文件(.xls)中,于是搜得python操作excel可以使用xlwt,xlrd模塊,雖然他們暫時(shí)只支持到excel2003,但是足夠了。xlwt為Python生成.xls文件的模塊,而xlrd為讀取的。由于我想的是直接生成xls文件,不需用到xlrd,所以先安裝xlwt。

直接進(jìn)入Python目錄使用如下命令即可安裝xlwt:

pip3 install xlwt

安裝完后寫(xiě)出操作代碼,這里同時(shí)也寫(xiě)入txt文件,方便比較:

Python3操作Excel-以豆瓣圖書(shū)Top250為例_第2張圖片

滿以為這樣就可以了,但是還是出現(xiàn)了一些錯(cuò)誤。

比如曾經(jīng)出現(xiàn)了寫(xiě)著寫(xiě)著就寫(xiě)不下去了的情況(以下并非以上代碼產(chǎn)生的結(jié)果):

這時(shí)我把不是str的都改成str了,不該str的盡量用數(shù)字(int,float),然后又遇到了下面的情況:

寫(xiě)到第64項(xiàng)又寫(xiě)不下去了,但是那些int,float都寫(xiě)完了,‘無(wú)’也是斷斷續(xù)續(xù)顯示幾個(gè),我想,既然找不到問(wèn)題,那么慢慢套吧。首先極大可能是中文編碼的問(wèn)題,因?yàn)槲野岩恍┛梢圆粸閟tr類(lèi)型的都賦成非str類(lèi)型以后都正確地顯示了,而且上圖中的顯示在圖片路徑名那里斷了,所以我讓那一列都不顯示,居然,成功了!

如圖,除了不顯示的那一列,其它完全正常,可以斷定就是下面這里出現(xiàn)的錯(cuò)誤:

writelist=[i+j,bookName,nickname,float(rating),int(nums),"I:\\douban\\image\\"+bookName+".jpg",bookurl,notion,tag]

我的圖片路徑那里是直接字符串拼接而成的,所以可能會(huì)有編碼的錯(cuò)誤。那么稍微改一下試試:

imgpath?=?str("I:\\douban\\image\\"+bookName+".jpg");

writelist=[i+j,bookName,nickname,float(rating),int(nums),imgpath,bookurl,notion,tag]

好吧,還是不行,還是出現(xiàn)圖5的問(wèn)題,但是打印在Python IDLE里面又都是正確的。

既然如此,把圖片鏈接全部改成一樣的英文試一下:

imgpath?=?str("I:\\douban\\image\\"+"a"+".jpg")

writelist=[i+j,bookName,nickname,float(rating),int(nums),imgpath,bookurl,notion,tag]

又是正確的:('無(wú)'已改為'None')

所以說(shuō),還是圖片路徑的問(wèn)題,那我們索性將圖片路徑那列換成圖片鏈接,采取消極應(yīng)對(duì)方法,反正這項(xiàng)是圖片鏈接還是圖片路徑無(wú)關(guān)緊要,反正圖片路徑里面有圖片就可以了。此外我還加了一個(gè)計(jì)時(shí)的代碼,計(jì)算總爬取時(shí)間,因?yàn)槲矣X(jué)得這樣干爬太慢了,沒(méi)有個(gè)將近10分鐘完不成,考慮利用多線程去爬,這里先記錄一下時(shí)間以觀后效。然后發(fā)現(xiàn)還是不行!現(xiàn)在成了只要imageurl固定(中文也行),就能夠順利輸出到xls中,否則就不行。很詭異。于是我又嘗試了縮短imageurl,實(shí)驗(yàn)得知,當(dāng)取imageurl[:-6]時(shí)是可以的,但imageurl[:-5]就不行了。后面又干脆不寫(xiě)入imageurl這一列,可以,不寫(xiě)入別名或者不寫(xiě)入圖書(shū)鏈接都是正常的,但是不寫(xiě)入標(biāo)號(hào)就不行。至今仍不得解。初步猜測(cè)莫非是寫(xiě)入的字符數(shù)受限制了?還得靠更多的實(shí)驗(yàn)才能確定。而且也說(shuō)不定就是Windows下的編碼問(wèn)題,這又得靠在Linux下進(jìn)行實(shí)驗(yàn)判斷。所以要做的事情還很多,這里先把正確的絕大部分工作做了再說(shuō)。

于是干脆不要圖書(shū)地址一列,最后得出如下最終代碼:

Python3操作Excel-以豆瓣圖書(shū)Top250為例_第3張圖片

運(yùn)行(7分多鐘):

還是斷了,那就真不知道怎么辦才好了。再改變方法,先寫(xiě)到TXT文本文件再導(dǎo)入到xls中,就先不管本文標(biāo)題了。

運(yùn)行:

在.txt中是正確的:

然后在xls文件中選擇數(shù)據(jù)->導(dǎo)入數(shù)據(jù)即可得到最終結(jié)果:

封面圖片:


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91青青国产在线观看免费 | 亚洲视频一区在线 | 亚洲色四在线视频观看 | 四虎精品8848ys一区二区 | 亚洲AV综合AV国产AV | 日本毛片高清免费视频 | 中文无码日韩欧 | 国产高清视频在线观看 | 少妇特黄a一区二区三区88av | 亚洲欧美偷拍自拍 | 日韩三级免费 | 最新精品在线 | 亚洲视频观看 | 亚洲一区在线观看视频 | av网站免费观看 | 日韩国产欧美一区二区三区 | 麻豆av免费观看 | 欧美日韩精品久久久免费观看 | 免费人成年短视频在线观看免费网站 | 色综合色综合色综合色综合 | 欧美国产一区二区 | 久久精品一区二区三区四区 | 激情视频网站 | 极品丝袜高跟91极品系列 | 一级片国语 | 成人1234| 欧日韩不卡在线视频 | 天堂一区二区三区四区 | 香港三日本三级三级三级 | 搞av.com | 国产精品美女久久久久久 | 精品欧美一区二区vr在线观看 | 亚洲天堂久久 | 91久久综合 | 色综合久久天天综合网 | 国产精品成人观看视频国产 | 国产一有一级毛片视频 | 午夜小视频免费观看 | 欧美日韩一区二区在线观看视频 | 天天色综合社区 | 亚洲欧美第一视频 |