#本代碼作用:爬取貼吧的頁面信息 '''觀察發現在百度貼吧搜索Python時: 1、百度貼吧第1頁網址:http://tieba.baidu.com/f?ie=utf-8&kw=python&fr=search&red_tag=p0106761335 2、百度貼吧第1頁網址:http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=50 3、百度貼吧第1頁網址:http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=100 4、百度貼吧第1頁網址:http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=150 觀察上面的網址規律發現kw=python,即搜索關鍵字在ke=后面,同時網頁地址最后為pn=50*(n-1), 即可得出結論第一頁的網址應該為:http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=0 測試結果第一頁的網址確實如此 '''
如下圖所示:
代碼如下:
#1、下面開始導入相應的模塊 import requests from bs4 import BeautifulSoup import time #2、設置請求網址,即百度貼吧 def spider1(begin,end,kw): headers={ "User-Agent":"Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/69.0.3497.100 Safari/537.36" } #設置請求頭 for page in range(begin,end): #遍歷range對象的數值,相當于遍歷頁碼 pn=(page-1)*50 #將(頁碼的值-1)*50賦值給pn url="http://tieba.baidu.com/f?kw="+str(kw)+"&ie=utf-8&pn="+str(pn) #設置網頁地址為百度貼吧地址,kw為搜索關鍵字,pn為頁碼的轉換值 response=requests.get(url,headers=headers) #對網站進行get請求,并偽裝成瀏覽器進行請求 response.encoding="utf-8" #自動解析編碼格式并賦值給response.encoding html=response.text #將網頁源代碼賦值給html print("開始打印百度貼吧關鍵字是:{}的第{}頁網頁源代碼{}".format(kw,page,html)) time.sleep(1) #時間休眠1秒 print("第{}頁打印完成".format(page)) #打印第多少頁打印完成 spider1(1,5,"python")
運行結果如下圖所示: