python可以这样学豆瓣_python爬虫学习之路:豆瓣爬虫练习
本人30歲大叔一枚,學(xué)習(xí)爬蟲(chóng)完全興趣使然。
在此記錄一下自己寫(xiě)的第一個(gè)爬蟲(chóng)項(xiàng)目,后面還會(huì)繼續(xù)改進(jìn),加上多線程,讓爬蟲(chóng)運(yùn)行快起來(lái)
目標(biāo)網(wǎng)站豆瓣圖書(shū)標(biāo)簽: 小說(shuō)?book.douban.com
想要獲取的數(shù)據(jù):書(shū)名、作者、評(píng)分、評(píng)論人數(shù)
保存格式:Excel
先說(shuō)一下我自己理解的爬蟲(chóng)完成步驟
一般的小爬蟲(chóng)不用想太多,第一步,分析網(wǎng)頁(yè),查看數(shù)據(jù)是不是在網(wǎng)頁(yè)源碼里面,如果不是就抓包(專(zhuān)業(yè)人士好像是說(shuō)什么動(dòng)態(tài)加載靜態(tài)加載吧),第二步整理一下思路,先獲取什么在獲取什么怎么保存,大體有個(gè)數(shù),最后才是擼代碼改bug
話不多說(shuō)直接上源碼,然后說(shuō)說(shuō)碰到的問(wèn)題和解決方案
先說(shuō)一下自己用到的庫(kù),requests和lxml這兩個(gè)就不用多說(shuō)了,time和random主要是為了加入隨機(jī)延時(shí),避免爬蟲(chóng)被封,也可以減小對(duì)服務(wù)器的壓力
另外start和end兩個(gè)時(shí)間是為了計(jì)算總耗時(shí),用來(lái)方便后面加入多線程的時(shí)候?qū)Ρ冗\(yùn)行速度
這個(gè)輸出方便在運(yùn)行過(guò)程中如果出錯(cuò)及時(shí)找到是第幾頁(yè)的錯(cuò)誤,方便修改程序
說(shuō)下碰到的問(wèn)題
1、評(píng)分一開(kāi)始的代碼是這樣的
后來(lái)運(yùn)行到第16頁(yè)出現(xiàn)了超出列表范圍的錯(cuò)誤,發(fā)現(xiàn)第16頁(yè)有本書(shū)沒(méi)有評(píng)分
所以就改成了現(xiàn)在的樣子
2、保存完之后發(fā)現(xiàn)獲取到的數(shù)據(jù)只有1000,可是按照豆瓣給出的頁(yè)數(shù)381頁(yè),每頁(yè)20本書(shū),應(yīng)該有7620條,然后我就不開(kāi)心的看了51頁(yè)的數(shù)據(jù)發(fā)現(xiàn)是這樣的
早知道就不用自己寫(xiě)個(gè)獲取頁(yè)數(shù)的代碼了,直接for i in range(0,1000,20)就搞定領(lǐng),費(fèi)這個(gè)勁
后面加上多線程測(cè)試一下,到時(shí)候在更新
總結(jié)
以上是生活随笔為你收集整理的python可以这样学豆瓣_python爬虫学习之路:豆瓣爬虫练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python有什么简单项目_python
- 下一篇: python 3.6.5编译安装_Cen