#输入吧名;输入起始页 然后在当前文件夹中创建一个以吧名为名字的文件夹, # 里面的每一页的html内容,文件名是吧名_page.html import urllib.parse import urllib.request import os tieba_url = "http://tieba.baidu.com/f?ie=utf-8&" #找规律 #第一页 pn=0 #第二页 pn=50 #第三页 pn=100 #第四页 pn=150 #第n页 pn=(n-1)*50 ba_name=input("请输入要爬取的吧名:") start_page = int(input("请输入要爬取的起始页码:")) end_page = int(input("请输入要爬取的结束页码:")) #创建文件夹(模块os) if not os.path.exists(ba_name): os.mkdir(ba_name) #搞个循环,依次爬取每一页 for page in range(start_page,end_page+1): #page就是当前页 #拼接url的过程 data={ "kw": ba_name, "pn": (page-1)*50 } data=urllib.parse.urlencode(data) #注意这里是一个循环,要生成指定的url # 就要再给指定url起一个变量名use_tieba_url 防止每次循环出错 use_tieba_url= tieba_url+data #print(use_tieba_url) #构建请求头 headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0' } #发送请求 request = urllib.request.Request(url=use_tieba_url,headers=headers) print("第%s页开始下载......" %page) #接收响应 reponse = urllib.request.urlopen(request) #写入文件 #文件名变量 filename=ba_name+"_"+str(page)+".html" #拼接文件路径 filepath = ba_name+"/"+filename #写内容 with open(filepath,"wb") as fp: fp.write(reponse.read()) print("第%s页结束下载......" %page)