Python3写爬虫(一)抓取页面

刚开始学习Python,决定学习Python3,但是网上的好多书都是Python2编写的。从今天起开始收集Python3.X实现的有趣代码,在解读代码的过程中提高自己的Python。

在CSDN上找到了一个利用Python3.3实现的爬虫,作者是一个名为德玛之力的网友,这是原文地址:

http://blog.csdn.net/omuyejingfeng1/article/details/24182313

运行了代码,顺利的实现了百度贴吧页码的下载,源码如下:

#encoding:utf-8
import urllib.request as request  #导入urllib模块
import urllib.parse as parse  
import string  
print(""" 
+++++++++++++++++++++++ 
  学校:超神学院 
  专业:德玛班 
  姓名:德玛之力 
  version: python3.2 
+++++++++++++++++=++++ 
     """)  
def baidu_tieba(url, begin_page, end_page):  
    for i in range(begin_page, end_page + 1):  
        sName = 'f:/test/'+str(i).zfill(5)+'.html'  
        print('正在下载第'+str(i)+'个页面, 并保存为'+sName)  
        m = request.urlopen(url+str(i)).read()  
        with open(sName,'wb') as file:  
            file.write(m)  
        file.close()
if __name__ == "__main__":  
    url = "http://tieba.baidu.com/p/"  
    begin_page = 1  
    end_page = 3  
    baidu_tieba(url, begin_page, end_page)

Python将原来模块urllib2拆分成了urllib.request和urllib.error。在这里导入的urllib.parse和urllib.request在Python的官方文档均有介绍,附网址:

1.urllib.request:https://docs.python.org/3.1/library/urllib.request.html

2.urllib.parse:https://docs.python.org/3.1/library/urllib.parse.html

通过阅读官方文档,我们了解到:

1.urllib.request是开启URL的扩展库(Extensible library for opening URLs),该模块定义了帮助开启URLs(大部分HTTP)的方法和类,包括了基础认证和摘要认证(basic and digest authentication)、重定向、cookie等等。

2.urllib.parse的作用是分析URLs组成(Parse URLs into compons)。该模块制定了将URL字符串相关的标准接口

主要功能:(1)将URL字符串拆分成各个部分的(包括编址方案、网络位置、路径等等)。

(2)讲各个拆分部分重组为URL字符串。

(3)将“相对URL”(relative URL)转换成“绝对URL”(absolute URL)。

所以研究网络爬虫,这两个模块应该是基本的。

后面就好理解了,在一个循环体下,利用urllib.equest.urlopen()函数捕获网页内容,然后存入自动命名的文件中。

if __name__ == '__main__':
    statements

这行代码中__name__ == '__main__'的作用是:让该python文件既可以独立运行,也可以当做模块导入到其他文件。当导入到其他的脚本文件的时候,此时__name__的名字其实是导入模块的名字,不是'__main__', main代码里面的就不执行了。(摘自文章:《Python 关于 name main的使用》)

最后,给变量赋值,执行baidu_tieba()实现页面的捕捉。

你可能感兴趣的:(爬虫,python3)