1. import urllib.request
    2. import urllib.parse
    3. class BaiduSpider:
    4. def __init__(self):
    5. self.headers = {
    6. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
    7. }
    8. def readPage(self,url): # 发请求获取响应
    9. rep = urllib.request.Request(url, headers=self.headers)
    10. response = urllib.request.urlopen(rep)
    11. html = response.read().decode('utf-8')
    12. return html
    13. def writePage(self,filename,html):
    14. with open(filename, 'w', encoding='utf-8') as f:
    15. f.write(html)
    16. def main(self):
    17. name = input('请输入贴吧名称:') # 1-5 , 2-3
    18. begin = int(input('请输入开始页:'))
    19. end = int(input('请输入结束页:'))
    20. name1 = urllib.parse.quote(name)
    21. for page in range(begin, end + 1): # range:左闭右开
    22. pn = (page - 1) * 50
    23. url = f'https://tieba.baidu.com/f?kw={name1}&pn={pn}'
    24. html = self.readPage(url) # 目的:获取页面内容
    25. filename = f'第{page}页.html'
    26. self.writePage(filename, html)
    27. d = BaiduSpider()
    28. d.main()