zoukankan      html  css  js  c++  java
  • 爬虫--任意百度贴吧任意页数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)

    作者:求知鱼

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

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

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

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

  • 相关阅读:
    CSS语言
    HTML语言
    JDBC技术
    存储过程
    Oracle和Mysql数据库技术
    正则表达式
    反射
    XML技术
    设计模式初步专题(自学,适合初级.更深入的会在框架阶段)
    线程池专题(自学)
  • 原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12182741.html
Copyright © 2011-2022 走看看