作為一只小白剛開始學python,聽到用python寫爬蟲就感覺十分的高端。當我看到知乎大佬們寫爬蟲用了各種庫更懵逼了。
其實基礎爬蟲可以直接用python自帶的庫urllib,re(但確實用了requests后就不想用urllib)
寫程序一定要心里有點B數(shù),
>>>所以不妨先來想想我的爬蟲是來干什么的
?emmmm,小姐姐照片,我戳的美照。確立小目標后就準備開始了。
>>>爬蟲到底是什么
還是很懵逼,我又要如何獲取圖片呢?
這時候我的html知識用上了:圖片都是通過鏈接寫到網(wǎng)站上的,通過鏈接就能找到這張圖片
那么如何用鏈接找到圖片呢:對服務器發(fā)送請求,它的response中就包含圖片
所以我的任務具體化為: ?? 要找到網(wǎng)站上圖片鏈接,發(fā)送請求,然后保存到本地
>>>準備打開新世界的大門了
第一步:找到要爬的網(wǎng)頁先發(fā)送一個小小的請求:
url=requests.get("url",headers={}) ? ? ? ? ? ?? #最好加上頭部,它還有其他作用(⊙?⊙)
第二步:分析網(wǎng)頁
打開瀏覽器的開發(fā)者工具,就會可以在在Elements欄看見網(wǎng)頁的html,然后在找到<img >標簽下的鏈接,確認一下是不是所找的圖片,如果是的話就拿小本本記下來,如果不是就繼續(xù)找。
然后呢?
難道要一個個一個找嗎?難道沒有一勞永逸的辦法嗎?
這時候正則(re)模塊j就要上場了,所以可以用網(wǎng)頁請求返回的url.text中來找到我們想要的圖片鏈接。
imglist=re.findall(“ ? ”,url.text) ?
? #url_list是圖片鏈接的列表,“ “中要手動添加圖片鏈接的相同部分,這用時候前面的小本本篩選一下就可以了(相當于索引)
第三步:再次發(fā)送請求
我們得到圖片鏈接的列表后要挨個挨個發(fā)送圖片鏈接的請求,用for循環(huán)再好不過了
第四步:保存到本地
法1:和發(fā)送請求一起寫

法2.:先發(fā)請求再寫入
m=requests.get("url_list",headers={})
with open(' m','wb') as f ? ? ? ? ? ? ? ? ?? # 'wb'指寫入二進制編碼
f.write(m.content) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #m.content 指m的二進制編碼
f.close() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? #最后關閉文件
第五步:檢查本地相應文件夾查看是否含有相應文件
>>>然后組合一下(直接上圖 ━┳━ ━┳━)
>>>心得體會:
寫出來還是很有成就感的,但是很多時候都是格式的問題導致運行出錯,所規(guī)范寫法很重要啊
如:
保持地址在某個文件夾要這樣寫:‘c:\img ’ ? ? ? ? ? ??
再比如:? x=x+1; ? ?? 最后的分號一定不能沒有
還有的就是找資料一定要帶腦子,不能看到有什么就硬生生搬運過來,理解原理是最重要的
最后一點,膠水語言的庫真是千變萬化