python爬蟲爬取百度貼吧(入門練習)
阿新 • • 發佈:2019-01-06
需求說明:
從控制檯輸入指定爬取的貼吧名稱,起始頁面,結束頁面,並在檔案中
建立以 貼吧名稱+“爬取內容” 為名字建立檔案件,裡面的每一個
檔案都是爬取到的每一頁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)
執行結果顯示如下圖