#本代碼作用:爬取貼吧的頁面信息 '''觀察發現在百度貼吧搜索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")
運行結果如下圖所示:






