爬虫—实战之小实验

1,首先来一个最基础的爬虫,抓取一个静态网页的代码
(1)

# 导入urllib2 库
import urllib2

# 向指定的url发送请求,并返回服务器响应的类文件对象,**注意的是com后面要加上一个/**

response = urllib2.urlopen("http://www.baidu.com/")

# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串

html = response.read()

# 打印字符串
print html

(2)上面那串代码可以进行补强的,因为上面那个太弱了,太简单了
可以用request进行请求:

import urllib2

# url 作为Request()方法的参数,构造并返回一个Request对象
request = urllib2.Request("http://www.baidu.com/")

# Request对象作为urlopen()方法的参数,发送给服务器并接收响应
response = urllib2.urlopen(request)

html = response.read()

print html

这里需要注意的是:新建Request实例,除了必须要有 url 参数之外,还可以设置另外两个参数,那样子就可以组成一个完整的HTTP的请求的格式了:
公式是这样的:Request=(url,data(默认空),headers(默认空))

1,data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。

2,headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。

2,学会使用User-Agent(用户的代理)
因为上面两个方法太反常了,一看就是人为写的,这时候我们就需要模拟浏览器登录人家的网站的服务器了。
下面我们看看怎么用:

import urllib2
#注意这里网址的后面一定要加一个/
url = "http://www.itcast.cn/"

#IE 9.0 的 User-Agent,包含在 ua_header里
ua_header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} 

#  url 连同 headers,一起构造Request请求,这个请求将附带 IE9.0 浏览器的User-Agent
request = urllib2.Request(url, headers = ua_header)

# 向服务器发送这个请求,服务器就会反馈回来
response = urllib2.urlopen(request)

html = response.read()
print html

你可能感兴趣的:(python)