溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法

發(fā)布時(shí)間:2020-08-06 10:37:55 來(lái)源:億速云 閱讀:322 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

爬取貼吧內(nèi)容

先了解貼吧url組成:

Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法

每個(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)容的方法

以上是Python爬蟲(chóng)中爬取貼吧內(nèi)容的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI