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