其实到这里我也不知道应该怎么讲,因为一开始我并不知道这个最简单的爬虫程序怎么写,单靠我自己想是写不出来的,所以就上网找了个程序,先让程序运行起来然后再慢慢的一行一行代码的去解析,我觉得这个相对来说是一个比较好的方法 所以这里先抛给大家这个程序,试着让程序先跑起来 1. 最简单的python爬虫源程序 这是一个最简单的python爬虫,它的功能是将网页的源代码获取并显示出来,代码很简单加上注释才有8行 1. #!/usr/bin/env python 2. # -*- coding: UTF-8 -*- 3. __author__ = '217小月月坑' 4. 5. import urllib2 6. 7. response = urllib2.urlopen("http://python./81339/") 8. print response.read() 2. 怎么理解这个python爬虫 #!/usr/bin/env python # 告诉系统应该使用哪个编译器来编译这个文件 # -*- coding: UTF-8 -*- # 使python程序支持中文编码格式 __author__ = '217小月月坑' # 这个程序的作者是谁,注意:前后都是两个 "_" import urllib2 # 导入urllib2 python库 '’' 1. 调用的是urllib2库里面的urlopen方法,传入一个URL,这个URL就是你想要爬取的网站的网址 2. 执行urlopen方法之后,返回一个response对象,返回信息便保存在这里面 ’'’ response = urllib2.urlopen("http://python./81339/") print response.read() # 使用read()方法将response对象的内容打印出来 3. 详解urlopen方法 urlopen一般接受三个参数,它的参数如下: urlopen(url, data, timeout) 第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。 第二三个参数是可以不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT 这个函数将会是我们前半部分学习的中心点,后面会慢慢讲解它的每个参数的使用 4. 详解read()方法 read()方法是将response里面的内容读取出来,如果不加read()的话,就只是显示response的描述信息 urlopen参数可以传入一个request请求,它其实就是一个Request类的实例,构造时需要传入Url,Data等等的内容 我们可以将前面的程序这样写: #!/usr/bin/env python # -*- coding: UTF-8 -*- __author__ = '217小月月坑' import urllib2 request = urllib2.Request ("http://python./81339/") response = urllib2.urlopen(request) print response.read() 这个写法的执行结果跟上一个完全一样,但是好处是程序的逻辑更清晰。 因为在构建请求时还需要加入好多内容,通过构建一个request,服务器响应请求得到应答,这样显得逻辑上清晰明确。 我们今后的学习都会使用这个写法,所以它很重要,尽量理解,实在理解不了可以先把它背下来 |
|