您好,登錄后才能下訂單哦!
這篇文章主要介紹Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
爬取貼吧內(nèi)容
先了解貼吧url組成:
每個(gè)貼吧url都是以'https://tieba.baidu.com/f?'開(kāi)頭,然后是關(guān)鍵字 kw=‘’貼吧名字‘’,再后面是 &pn=頁(yè)數(shù) (pn=0第一頁(yè),pn=50第二頁(yè),依次類(lèi)推)
更多關(guān)于Python爬蟲(chóng)的相關(guān)知識(shí),可以關(guān)注億速云的Python爬蟲(chóng)欄目。
1.先寫(xiě)一個(gè)main,提示用戶(hù)輸入要爬取的貼吧名,并用urllib.urlencode()進(jìn)行轉(zhuǎn)碼,然后組合url
2.接下來(lái),寫(xiě)一個(gè)百度貼吧爬蟲(chóng)接口tiebaSpider(),需要傳遞3個(gè)參數(shù)給這個(gè)接口, 一個(gè)是main里組合的url地址,以及起始頁(yè)碼和終止頁(yè)碼,表示要爬取頁(yè)碼的范圍。
3.前面寫(xiě)出一個(gè)爬取一個(gè)網(wǎng)頁(yè)的代碼。然后,將它封裝成一個(gè)小函數(shù)loadPage(),供我們使用。
4.將爬取到的每頁(yè)的信息存儲(chǔ)在本地磁盤(pán)上,我們可以簡(jiǎn)單寫(xiě)一個(gè)存儲(chǔ)文件的接口writePage()
# _*_ coding:utf-8 _*_ import urllib,urllib2 def loadPage(url,filename): #根據(jù)url發(fā)送請(qǐng)求,獲取服務(wù)器響應(yīng)文件 print '正在下載' + filename headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36'} request = urllib2.Request(url,headers = headers) content = urllib2.urlopen(request).read() return content def writePage(html,filename): #將html內(nèi)容寫(xiě)入到本地 print '正在保存' + filename with open(unicode(filename,'utf-8'),'w') as f: f.write(html) print '_' * 30 def tiebaSpider(url,beginPage,endPage): #貼吧爬蟲(chóng)調(diào)度器,負(fù)責(zé)組合處理每個(gè)頁(yè)面的url for page in range(beginPage,endPage + 1): pn = (page - 1) * 50 filename = '第' + str(page) + '頁(yè).html' fullurl = url + '&pn=' + str(pn) # print fullurl html = loadPage(fullurl,filename) writePage(html,filename) if __name__ == '__main__': kw = raw_input('請(qǐng)輸入貼吧名:') beginPage = int(raw_input('請(qǐng)輸入起始頁(yè):')) endPage = int(raw_input('請(qǐng)輸入結(jié)束頁(yè):')) url = 'https://tieba.baidu.com/f?' key = urllib.urlencode({'kw':kw}) fullurl = url + key tiebaSpider(fullurl,beginPage,endPage)
通過(guò)輸入想要搜索的貼吧名字,爬取內(nèi)容并保存到本地
以上是Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。