爬虫--任意百度贴吧任意页数HTML内容页面下载(未经过滤处理)

#输入吧名;输入起始页  然后在当前文件夹中创建一个以吧名为名字的文件夹,
# 里面的每一页的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)

作者:求知鱼

-------------------------------------------

个性签名:你有一个苹果,我有一个苹果,我们交换一下,一人还是只有一个苹果;你有一种思想,我有一种思想,我们交换一下,一个人就有两种思想。

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

独学而无友,则孤陋而寡闻,开源、分享、白嫖!

原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12182741.html