1. 程式人生 > >python爬蟲爬取百度貼吧(入門練習)

python爬蟲爬取百度貼吧(入門練習)

需求說明:

從控制檯輸入指定爬取的貼吧名稱,起始頁面,結束頁面,並在檔案中
建立以  貼吧名稱+“爬取內容”  為名字建立檔案件,裡面的每一個
檔案都是爬取到的每一頁html檔案,檔名稱:貼吧名稱_page.html

import urllib.request
import urllib.parse
import os#引入os模組
tieba_name = input("請輸入你要爬取的貼吧的名稱")
page_start = int(input("請輸入你要爬取的起始頁面"))
page_end = int(input("請輸入你要爬取的結束頁面"))
url = 'http://tieba.baidu.com/f?'
name_next = '吧爬取的內容'
#建立資料夾
os.mkdir(tieba_name+name_next)
#設定迴圈,爬取每一頁
for page in range(page_start,page_end+1):
    print('第%d頁正在下載'%page)
    data = {
    'kw':tieba_name,
    'pn':(page-1)*50
    }
    data = urllib.parse.urlencode(data)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0',
    }
    #發出請求
    url_t = url+data
    request = urllib.request.Request(url=url_t,headers=headers)
    response = urllib.request.urlopen(request)
    path = tieba_name+name_next+'/'+tieba_name+str(page)+'.html'
    with open(path,'wb')as fp:
        fp.write(response.read())
    print('第%d頁下載完成' % page)

執行結果顯示如下圖