zoukankan      html  css  js  c++  java
  • 爬虫学习笔记(1)---简单的爬取百度贴吧

    新时代的我们,需要的是数据说话,大数据时代,需要自动化的工具,学习方式就是遇佛杀佛,遇神杀神,不会什么查什么,逐个解决

    作者网址:CSDN 

    1.第一遍+加上自己写的注释

     1 # -*- coding: utf-8 -*-
     2 #---------------------------------------
     3 #   程序:百度贴吧爬虫
     4 #   版本:0.1
     5 #   作者:why
     6 #   日期:2013-05-14
     7 #   语言:Python 2.7
     8 #   操作:输入带分页的地址,去掉最后面的数字,设置一下起始页数和终点页数。
     9 #   功能:下载对应页码内的所有页面并存储为html文件。
    10 #---------------------------------------
    11  
    12 import string, urllib2
    13  
    14 #定义百度函数
    15 def baidu_tieba(url,begin_page,end_page):   
    16     for i in range(begin_page, end_page+1):
    17         sName = string.zfill(i,5) + '.html'#自动填充成六位的文件名 string的方法有.zfil 网页 最后几行能找到 string.zfill(swidth) width显示0,然后s附在最后
    18         print '正在下载第' + str(i) + '个网页,并将其存储为' + sName + '......'  #显示下载进程
    19         f = open(sName,'w+')               #用来写入更新,网址
    20         m = urllib2.urlopen(url + str(i)).read()  #urllib.urlopen的用法网址 
    .read的用法(包括了write的用法)用来阅读网址内容 网址 返回的是string 这个地方还是不懂?为什么要打开,写入
    21 f.write(m) 22 f.close() #网址用来释放空间 23 24 25 #-------- 在这里输入参数 ------------------ 26 27 # 这个是山东大学的百度贴吧中某一个帖子的地址 28 #bdurl = 'http://tieba.baidu.com/p/2296017831?pn=' #网址太老,已经被删了 最好换成http://tieba.baidu.com/p/2251718675?pn= 29 #iPostBegin = 1 30 #iPostEnd = 10 31 32 bdurl = str(raw_input(u'请输入贴吧的地址,去掉pn=后面的数字: '))
    #raw_input()里面的u代表了utf-8编码(因为括号里用到了中文),返回一般是str,为什么还要加str() 如果是输入的是其他的字符比如:、
    返回类型就变成Unicode(我用type()函数检测的)
    ,对于有中文字符的Unicode编码,需要修改代码才行
    33 begin_page = int(raw_input(u'请输入开始的页数:
    '))  #把返回的string转变成int类型
    34 end_page = int(raw_input(u'请输入终点的页数: ')) #同理
    35 #-------- 在这里输入参数 ------------------
    36
    37
    38 #调用
    39 baidu_tieba(bdurl,begin_page,end_page) #调用前面写的函数

    经验:在jupyter上运行会出错,感觉是kernal的问题

    下方是原配

    1.第二遍(便于其他人复制黏贴,希望转载的把CSDN原作者附上,我的就不用了)

    # -*- coding: utf-8 -*-
    #---------------------------------------
    #   程序:百度贴吧爬虫
    #   版本:0.1
    #   作者:why
    #   日期:2013-05-14
    #   语言:Python 2.7
    #   操作:输入带分页的地址,去掉最后面的数字,设置一下起始页数和终点页数。
    #   功能:下载对应页码内的所有页面并存储为html文件。
    #---------------------------------------
     
    import string, urllib2
     
    #定义百度函数
    def baidu_tieba(url,begin_page,end_page):   
        for i in range(begin_page, end_page+1):
            sName = string.zfill(i,5) + '.html'#自动填充成六位的文件名
            print '正在下载第' + str(i) + '个网页,并将其存储为' + sName + '......'
            f = open(sName,'w+')
            m = urllib2.urlopen(url + str(i)).read()
            f.write(m)
            f.close()
     
     
    #-------- 在这里输入参数 ------------------
    
    # 这个是山东大学的百度贴吧中某一个帖子的地址
    #bdurl = 'http://tieba.baidu.com/p/2296017831?pn='
    #iPostBegin = 1
    #iPostEnd = 10
    
    bdurl = str(raw_input(u'请输入贴吧的地址,去掉pn=后面的数字:
    '))
    begin_page = int(raw_input(u'请输入开始的页数:
    '))
    end_page = int(raw_input(u'请输入终点的页数:
    '))
    #-------- 在这里输入参数 ------------------
     
    
    #调用
    baidu_tieba(bdurl,begin_page,end_page)
  • 相关阅读:
    教你怎样做个有“钱”途的測试project师
    使用具体解释及源代码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
    html-上左右布局方式---ShinePans
    POJ1502 MPI Maelstrom Dijkstra
    Angry IP Scanner 获取设备的IP
    【Struts2学习笔记(12)】Struts2国际化
    使用SQL Profile及SQL Tuning Advisor固定运行计划
    sage开发url替换字符串
    柯塔娜大合唱,互联网安全观
    vim水平摆放全部窗体的三个方法
  • 原文地址:https://www.cnblogs.com/gkgy/p/6411605.html
Copyright © 2011-2022 走看看