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

# -*- 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

爬取贴吧中的html,并保存到相对应的文件夹中的更多相关文章

  1. android中保存Bitmap图片到指定文件夹中的方法

    /** 保存方法 */  public void saveBitmap() {   Log.e(TAG, "保存图片");   File f = new File("/s ...

  2. [R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  3. python连续爬取多个网页的图片分别保存到不同的文件夹

      python连续爬取多个网页的图片分别保存到不同的文件夹 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...

  4. 用Python批量裁取图,来获取文件夹中所有图片名

    批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取) 功能是裁取图片中红色框的部分. 代码为: import sys from tkinter.tix import Tk from PIL im ...

  5. 【Python爬虫程序】抓取MM131美女图片,并将这些图片下载到本地指定文件夹。

    一.项目名称 抓取MM131美女写真图片,并将这些图片下载到本地指定文件夹. 共有6种类型的美女图片: 性感美女 清纯美眉 美女校花 性感车模 旗袍美女 明星写真 抓取后的效果图如下,每个图集是一个独 ...

  6. matlab中exist 检查变量、脚本、函数、文件夹或类的存在情况

    参考: 1.https://ww2.mathworks.cn/help/matlab/ref/exist.html?searchHighlight=exist&s_tid=doc_srchti ...

  7. 2. 假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实 际数据。

    假设当前文件夹中data.csv文件中存放了2020年某饭店营业额,第一列为日期(如2020-02-03),第二列为每天交易额(如3560),文件中第一行为表头,其余行为实  际数据.编写程序,完成下 ...

  8. 152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv

    152-技巧-Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv 附件下载地址:https://jiaopengzi.com/2602.html 一.背景 在我们使用 ...

  9. 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt

    package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...

随机推荐

  1. 蓝桥杯—BASIC-21 sine之舞(递归递推)

    题目:最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数,所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力. 不妨设 An=sin(1– ...

  2. 【转载】offer经验

    http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html

  3. TCP/UDP工作流程图

     说到socket必须要贴的图: TCP工作流程:  UDP工作流程:

  4. bzoj1294

    题解: 首先发现假如一个豆豆被多边形围住了,那么从这个豆豆引出一条射线 会有奇数个焦点 然后我们从每个豆豆引出一条射线 然后状压dfs 代码: #include<bits/stdc++.h> ...

  5. 各个版本的jee(servlet,jsp)对应的web.xml的模板

    参考链接: https://yutuo.net/archives/7048a006eeb2ac85.html

  6. java动手动脑1

    一.以下代码的输出结果是什么? int X=100; int Y=200; System.out.println("X+Y="+X+Y); System.out.println(X ...

  7. jmeter4.0 源码编译 二次开发

    准备: 1.jmeter4.0源码 - apache-jmeter-4.0_src.zip 2.IDE Eclipse - Oxygen.3 Release (4.7.3) 3.JDK - 1.8.0 ...

  8. netty源码理解(二) serverstrap.bind()

    eventloop是一个线程,里面有一个executor封装了一个线程工厂,在启动的时候启动一个线程,传入的实现了runnable的内部类,里面调用了eventloop的run方法.

  9. 百度地图API示例:鼠标绘制点线面 控件修改

    需求 :在使用地图API时,绘制工具栏控件想自己选择哪些要,哪些不要. 可以查看相应的类:官网地址: http://api.map.baidu.com/library/DrawingManager/1 ...

  10. springMVC学习五(转发和乱码)

    摘录http://www.cnblogs.com/xdp-gacl/p/3798347.html http://www.cnblogs.com/xdp-gacl/p/3798347.html 四个很重 ...