python-08:理解最简单的爬虫程序

为了方便对照,咱们先给程序加上注释
python

#!/usr/bin/env python           # 告诉系统应该使用哪一个编译器来编译这个文件
# -*- coding: UTF-8 -*-         # 使python程序支持中文编码格式
__author__ = '217小月月坑'       # 这个程序的做者是谁,注意:先后都是两个 "_"

import urllib2                  # 导入urllib2 模块
'''
1. 调用urllib2库里面的urlopen函数来请求打开一个网站,传入一个URL,这个URL就是你想要爬取的网站的网址
2. 执行urlopen函数以后,返回一个response对象,返回信息便保存在这里面
'''
response = urllib2.urlopen("http://python.jobbole.com/81339/")
print response.read()     # 使用read()方法将response对象的内容打印出来

好了,咱们发现咱们使用到了几个新的函数,如今来了解一下他们的做用是什么
服务器

1. 详解urlopen函数
        urlopen通常接受三个参数,它的参数以下:
            urlopen(url, data, timeout)
                第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间。
                第二三个参数是能够不传送的,data默认为空None,timeout默认为 socket._GLOBAL_DEFAULT_TIMEOUT
这个函数将会是咱们前半部分学习的中心点,后面会慢慢讲解它的每一个参数的使用
               
2. 详解read()函数
        read()函数是将response里面的内容读取出来,若是不加read()的话,就只是显示response的描述信息
socket


3. 另外一种更规范的写法
函数

        urlopen参数能够传入一个request请求,它其实就是一个Request类的实例,构造时须要传入Url,Data等等的内容
        咱们能够将前面的程序这样写:
学习

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'

import urllib2
# 先构建一个请求
request = urllib2.Request ("http://python.jobbole.com/81339/")
# 使用urlopen函数请求网页返回信息
response = urllib2.urlopen(request)
print response.read()

        这个写法的执行结果跟上一个彻底同样,可是好处是程序的逻辑更清晰。
        由于在构建请求时还须要加入好多内容,经过构建一个request,服务器响应请求获得应答,这样显得逻辑上清晰明确。
       咱们从此的学习都会使用这个写法,因此它很重要,尽可能理解,实在理解不了能够先把它背下

网站

相关文章
相关标签/搜索