Python爬蟲-爬取百度貼吧
阿新 • • 發佈:2018-12-08
方法 eba style name urlopen for pri url pen
爬取百度貼吧
=====================
=====
結果示例:
=====================================
1 ‘‘‘ 2 爬去百度貼吧-張繼科吧 3 1. 張繼科吧主頁是 https://tieba.baidu.com/f?kw=張繼科 4 2. 進去之後,貼吧有很多頁 5 第一頁網址:https://tieba.baidu.com/f?kw=張繼科&ie=utf-8&pn=0 6 第二頁網址:https://tieba.baidu.com/f?kw=張繼科&ie=utf-8&pn=50 7 第三頁網址:https://tieba.baidu.com/f?kw=張繼科&ie=utf-8&pn=1008 第四頁網址:https://tieba.baidu.com/f?kw=張繼科&ie=utf-8&pn=150 9 第五頁網址:https://tieba.baidu.com/f?kw=張繼科&ie=utf-8&pn=200 10 3. 由上面網址可以找到規律,每一頁只有後面數字不同,且數字應該是 (頁數-1)x50 11 12 解決方法: 13 1. 準備構建參數字典 14 字典包含三部分,kw,ie,pn 15 2. 使用parse構建完整url 16 3. 使用for循環下載 17 ‘‘‘ 18 19 from urllib import request, parse20 21 22 23 if __name__ == ‘__main__‘: 24 25 #1. 準備構建參數字典 26 qs = { 27 "kw": "張繼科", 28 "ie": "utf-8", 29 "pn": 0 30 } 31 #2. 使用parse構建完整url 32 # 假定只需要前10頁 33 urls = [] 34 baseurl = "https://tieba.baidu.com/f?" 35 for i in range(10): 36 # 構建新的qs37 pn = i * 50 38 qs[‘pn‘] = str(pn) 39 # 把qs編碼後和基礎url進行拼接 40 # 拼接完畢後裝入url列表中 41 urls.append( baseurl + parse.urlencode(qs) ) 42 43 print(urls) 44 #3. 使用for循環下載 45 46 for url in urls: 47 rsp = request.urlopen(url) 48 html = rsp.read().decode("utf-8") 49 print(url) 50 print(html) 51 52 ‘‘‘ 53 待完善: 54 1. 把每個抓到的內容保存到文件中,文件後綴是html 55 ‘‘‘
Python爬蟲-爬取百度貼吧