功能:输入要爬取的贴吧名称,起始页和终止页即可。

# -*- coding: utf-8 -*-
import urllib.request
import urllib.parse
import os class BaiduSpider:
def __init__(self):
self.baseurl = ""
self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"} # 请求并获取页面的内容
def getPage(self, url):
req = urllib.request.Request(url, headers=self.headers)
res = urllib.request.urlopen(req)
html = res.read().decode("utf-8")
print(res.getcode())
return html # 保存
def writePage(self, x, html):
print("===")
# 获取路径
path = os.path.join(os.path.dirname(__file__),"baidutieba/")
# 判断路径
if not os.path.exists(path):
# 如果不存在,则创建该路径相关的路径文件
os.makedirs(path)
# 给文件有相对应的权限
os.chmod(path, "rw")
with open(path+str(x) + ".html", "w", encoding="utf-8") as f:
f.write(html)
print("保存成功") # 主函数
def workOn(self):
title = urllib.parse.quote(input("请输入你要搜索的贴吧名:"))
start= int(input("请输入起始页:"))
end = int(input("请输入终止页:"))
baseurl = "https://tieba.baidu.com/f?kw="+ title +"&ie=utf-8&"
for x in range(start, end+1):
if x == 1:
url = baseurl
pn = (x-1)*50
url = baseurl + "&pn=" + str(pn)
html = self.getPage(url)
self.writePage(x, html)
print("ok") if __name__ == "__main__":
# 创建对象
spider = BaiduSpider()
spider.workOn()

运行结果:

请输入你要搜索的贴吧名:海贼王

请输入起始页:1

请输入终止页:5
200
===
保存成功
ok

最新文章

  1. Node6.9.2 —— Http官网笔记整理
  2. .net 网络编程
  3. pycharm licenseserver 注册方法
  4. C#读取Excel文件
  5. linux 并发 RCU
  6. html之大白
  7. SqlServer中使用Select语句给变量赋值的时候需要注意的一个问题
  8. UVA10339 Watching Watches
  9. 20145218《Java程序设计》第一周学习总结
  10. Valid Palindrome
  11. winserver2008下创建计划任务注意点
  12. python之6-3嵌套函数
  13. 上一篇下一篇 排序 (非ID字段排序)
  14. sql:oracle, CURSOR
  15. 采用RedisLive监控Redis服务
  16. 怎么在ubuntu上运行php代码?
  17. Android开发之漫漫长途 Ⅵ——图解Android事件分发机制(深入底层源码)
  18. Part 4:表单和类视图--Django从入门到精通系列教程
  19. sql server 查询表的创建时间
  20. 股票K线图

热门文章

  1. Nginx的Access日志记录的时机
  2. decltype的参数是左值时,得到一个引用类型
  3. learning at command AT+CSQ
  4. asp.net中javascript与后台c#交互
  5. day2编程语言的两大分类
  6. JAVA项目之苹果IAP内购JAVA服务器验证流程详解
  7. Linux运维工程师真实的工作状态到底是怎么样的?
  8. unity中鼠标按下加速漫游,鼠标抬起减速漫游。
  9. Java实现随机生成车牌号
  10. IEnumerable<T> list注意事项