zoukankan      html  css  js  c++  java
  • 爬贴吧

    python3 抓取贴吧页面

     1 from urllib import request, parse
     2 import sys
     3 
     4 
     5 def loadPage(url, filename):
     6     """
     7     作用: 根据url发送请求, 获取服务器相应文件
     8     url: 需要爬取的url地址
     9     """
    10     print("正在下载" + filename)
    11     headers = {
    12         "User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"
    13     }
    14     req = request.Request(url, headers=headers)
    15     # 获得系统的编码
    16     type = sys.getfilesystemencoding()
    17     # 设置爬出内容的编码
    18     print(type)
    19     # ************************************************
    20     html = request.urlopen(req).read().decode(type)
    21     # ************************************************
    22     print(html)
    23     return html
    24 
    25 
    26 def writePage(html, filename):
    27     """
    28     作用: 将html内容写入到本地
    29     html: 服务器相应文件内容
    30     """
    31     print("正在保存" + filename)
    32     # ***********************************************
    33     with open(filename, "w", encoding="utf-8") as f:
    34         # ***********************************************
    35         f.write(html)
    36     print("*" * 30)
    37 
    38 
    39 def tiebaSpider(url, bingenPage, endPage):
    40     """
    41     作用: 爬虫爬虫调度器, 负责组合处理每一个页面的url
    42     url: 贴吧url的前部分,
    43     beginPage: 起始页
    44     endPage: 终止页
    45     """
    46     for page in range(beginPage, endPage + 1):
    47         pn = (page - 1) * 50
    48         filename = "" + str(page) + "页.html"
    49         fullurl = url + "&pn=" + str(pn)
    50         print(fullurl)
    51         html = loadPage(fullurl, filename)
    52         writePage(html, filename)
    53 
    54 
    55 if __name__ == "__main__":
    56     kw = input("请输入需要爬取的贴吧名:")
    57     beginPage = int(input("请输入起始页编号"))
    58     endPage = int(input("请输入结束页编号:"))
    59     url = "http://tieba.baidu.com/f?"
    60     key = parse.urlencode({"kw": kw})
    61     fullurl = url + key
    62     tiebaSpider(fullurl, beginPage, endPage)
    View Code
  • 相关阅读:
    委托
    Math方法讲解
    正则表达式判断邮件输入的是否正确
    值类型与引用类型作为参数输出的效果
    listView 控件加上选择框
    ?: ?? ? 的区别
    学习思维导图之前先了解这些常识
    PDF文档如何添加图片签名
    CleanMyMac与腾讯柠檬清理软件的简单对比
    如何用思维导图MindManager制作一套学习法
  • 原文地址:https://www.cnblogs.com/amou/p/9131477.html
Copyright © 2011-2022 走看看