爬取百度貼吧實戰,python教你如何獲取
1,目標:
爬取貼吧每一貼,樓主圖,並儲存。
由於圖片大多是樓主發的,如果全部查詢會浪費很多時間。
2,分析
我選擇爬取的貼吧為圖吧,你們可以選擇自己想要爬取的貼吧。
2.1,獲取頁面
我們將爬取頁面的程式碼寫成一個get_html()方法,給他傳入url引數
程式碼如圖:
獲取正常,沒問題。
我們用chrome的開發者模式來分析每個貼的連線,用定位定位一個帖子,這樣方便我們快速的去查詢我們想要的資訊。
如圖:
2.2利用正規表示式找出我們想要的連線
通過查詢,我們發現每個貼都是在class=“col2_right j_threalist_li/_right”下
我們可以讓他成為一個標誌位,通過它繼續往下找,他有兩個類名,我們選擇後者即可。
<div.?j_threadlist_li_right.?>.?<a.?href="(.?)".?>(.*?)
返回的是一個陣列,為了好看我們以字典的方式返回,用yield我們可以理解為返回值,在python基礎裡會講,我們將獲取的頁面作為引數傳進去,實現get_url方法。
如圖:
我們來列印一下,看一下獲取的是什麼?
結果如圖:
很明顯,我們需要來拼接一下,獲取完整的url,我們點選一個進入,可以發現,url是這樣的:https://tieba.baidu.com/p/5768252315,我們得到了後半部分,那就容易了,只需要拼接一下,得到的結果就變成了:
得到連結後,我們需要再次傳送請求,獲取到每個貼的內容,即呼叫我們上面寫好的get_html()方法即可。
2.3找到每個帖子樓主發的圖片連結
同樣的方式,開啟開發者模式,找的圖片,找出標誌位,寫出正則,這裡就不詳細說了,正則為:
實現get_img_url()方法:
結果圖為:
2.4獲取到圖片地址後,自然是要下載下來實現write_to_file()方法
下載圖片,在上篇文章上已經有例項,
連線:python第二大神器requests
這裡直接上程式碼圖:
裡面的正則是用來作為圖片名字的,time.sleep(2)是為了爬取慢點
太快會無響應或者報錯。
下面我們試一下效果:
我們來修改一下,來爬取第一頁貼種的所有貼,獲取樓主貼的總頁數
和上面同樣的方式找到總頁數,並寫出獲取總頁數的正則:
實現get_ye方法,同時點選只看樓主,url會多出see_lz=1
如圖:
2.5由於有些貼吧的貼子很多,我們就選擇獲取前十頁內容,當然你也可以寫個方法換取所有頁
這裡就不例項了,在貼吧裡點選下一頁我們發現url多出pn=50,由此我們知道50為偏移量,即一頁有50個帖子pn=n 是n+1到n+50帖子
2.6整合一下程式碼,我們用main()方法來呼叫上面的方法。
如圖:
推薦一下我建的python學習交流扣扣qun:850973621,群裡有免費的視訊教程,開發工具、
電子書籍、專案原始碼分享。一起交流學習,一起進步!
作者:小新你蠟筆呢
連結:https://www.jianshu.com/p/27c534394890
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
相關文章
- python爬蟲獲取百度熱搜Python爬蟲
- python爬蟲如何獲取表情包Python爬蟲
- 段友福利:Python爬取段友之家貼吧圖片和小視訊Python
- 實時獲取股票資料,免費!——Python爬蟲Sina Stock實戰Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- 教你用Python爬取圖蟲網Python
- 教你用Python爬取妹子圖APPPythonAPP
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- python爬蟲獲取天氣網實時資料Python爬蟲
- python爬蟲實戰:爬取西刺代理的代理ip(二)Python爬蟲
- Python爬蟲實戰案例-爬取幣世界標紅快訊Python爬蟲
- 使用python爬取百度百科Python
- python如何只獲取日期Python
- 教你如何使用API介面獲取資料!API
- 爬蟲實戰:從HTTP請求獲取資料解析社群爬蟲HTTP
- python學習值爬取百度翻譯Python
- Python量化交易系統實戰--獲取股票資料Python
- python兩種獲取剪貼簿內容的方法Python
- Python如何獲取request response bodyPython
- python中獲取如何Series值Python
- python如何獲取本機ipPython
- 爬取LeetCode題目——如何傳送GraphQL Query獲取資料LeetCode
- 爬蟲實戰——58同城租房資料爬取爬蟲
- API商品資料介面呼叫實戰:爬蟲與資料獲取API爬蟲
- 教你如何在@ViewChild查詢之前獲取ViewContainerRefViewAI
- 教你用python登陸豆瓣並爬取影評Python
- Python如何爬取實時變化的WebSocket資料PythonWeb
- python爬蟲從ip池獲取隨機IPPython爬蟲隨機
- python 爬蟲之獲取標題和連結Python爬蟲
- 爬蟲——爬取貴陽房價(Python實現)爬蟲Python
- python tkinter如何獲取label內容?Python
- python 如何獲取當前時間Python
- 如何使用Python獲取、寫入localStoragePython
- 如何使用python進行網頁爬取?Python網頁
- python如何爬取動漫截圖網Python
- python爬取網圖Python
- 【Python爬蟲實戰】使用Selenium爬取QQ音樂歌曲及評論資訊Python爬蟲
- Python實時爬取鬥魚彈幕Python