這篇文章將為大家詳細(xì)講解有關(guān)python如何爬取百度貼吧圖片,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司2013年至今,先為廣陵等服務(wù)建站,廣陵等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為廣陵企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
1,目標(biāo):
爬取貼吧每一貼,樓主圖,并保存。
由于圖片大多是樓主發(fā)的,如果全部查找會(huì)浪費(fèi)很多時(shí)間。
2,分析
我選擇爬取的貼吧為圖吧,你們可以選擇自己想要爬取的貼吧。
2.1,獲取頁(yè)面
我們將爬取頁(yè)面的代碼寫成一個(gè)get_html()方法,給他傳入url參數(shù)
代碼如圖:

獲取正常,沒問題。
我們用chrome的開發(fā)者模式來(lái)分析每個(gè)貼的連接,用定位定位一個(gè)帖子,這樣方便我們快速的去查找我們想要的信息。
如圖:

2.2利用正則表達(dá)式找出我們想要的連接
通過查找,我們發(fā)現(xiàn)每個(gè)貼都是在class=“col2_right j_threalist_li/_right”下
我們可以讓他成為一個(gè)標(biāo)志位,通過它繼續(xù)往下找,他有兩個(gè)類名,我們選擇后者即可。
<div.*?j_threadlist_li_right.*?>.*?<a.*?href=\"(.*?)\".*?>(.*?)</a>
返回的是一個(gè)數(shù)組,為了好看我們以字典的方式返回,用yield我們可以理解為返回值,在python基礎(chǔ)里會(huì)講,我們將獲取的頁(yè)面作為參數(shù)傳進(jìn)去,實(shí)現(xiàn)get_url方法。
如圖:

我們來(lái)打印一下,看一下獲取的是什么?
結(jié)果如圖:

很明顯,我們需要來(lái)拼接一下,獲取完整的url,我們點(diǎn)擊一個(gè)進(jìn)入,可以發(fā)現(xiàn),url是這樣的:https://tieba.baidu.com/p/5768252315,我們得到了后半部分,那就容易了,只需要拼接一下,得到的結(jié)果就變成了:

得到鏈接后,我們需要再次發(fā)送請(qǐng)求,獲取到每個(gè)貼的內(nèi)容,即調(diào)用我們上面寫好的get_html()方法即可。
2.3找到每個(gè)帖子樓主發(fā)的圖片鏈接
同樣的方式,打開開發(fā)者模式,找的圖片,找出標(biāo)志位,寫出正則,這里就不詳細(xì)說(shuō)了,正則為:<img.*?BDE_Image.*?src=\"(http.*?//img.*?)\"
實(shí)現(xiàn)get_img_url()方法:

結(jié)果圖為:

2.4獲取到圖片地址后,自然是要下載下來(lái)實(shí)現(xiàn)write_to_file()方法
下載圖片,在上篇文章上已經(jīng)有實(shí)例,
連接:python第二大神器requests
這里直接上代碼圖:

里面的正則是用來(lái)作為圖片名字的,time.sleep(2)是為了爬取慢點(diǎn)
太快會(huì)無(wú)響應(yīng)或者報(bào)錯(cuò)。
下面我們?cè)囈幌滦Ч?/p>

我們來(lái)修改一下,來(lái)爬取第一頁(yè)貼種的所有貼,獲取樓主貼的總頁(yè)數(shù)
和上面同樣的方式找到總頁(yè)數(shù),并寫出獲取總頁(yè)數(shù)的正則:<input.*?jumpPage4.*?max-page=\"(.*?)\"
實(shí)現(xiàn)get_ye方法,同時(shí)點(diǎn)擊只看樓主,url會(huì)多出see_lz=1
如圖:

2.6由于有些貼吧的貼子很多,我們就選擇獲取前十頁(yè)內(nèi)容,當(dāng)然你也可以寫個(gè)方法換取所有頁(yè)
這里就不實(shí)例了,在貼吧里點(diǎn)擊下一頁(yè)我們發(fā)現(xiàn)url多出pn=50,由此我們知道50為偏移量,即一頁(yè)有50個(gè)帖子pn=n 是n+1到n+50帖子
2.7整合一下代碼,我們用main()方法來(lái)調(diào)用上面的方法。
如圖:


關(guān)于“python如何爬取百度貼吧圖片”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
分享名稱:python如何爬取百度貼吧圖片
當(dāng)前鏈接:http://www.chinadenli.net/article18/gidcgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站導(dǎo)航、營(yíng)銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)