1、扒取网页和基本代码:

import urllib

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

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

print response.read()

首先我们调用的是 urllib2 库里面的 urlopen 方法,传入一个 URL,这个网址是百度首页,协议是 HTTP 协议,当然你也可以把 HTTP 换做 FTP,FILE,HTTPS 等等,只是代表了一种访问控制协议,urlopen 一般接受三个参数,它的参数如下:urlopen(url, data, timeout) 第一个参数 url 即为 URL,第二个参数 data 是访问 URL 时要传送的数据,第三个 timeout 是设置超时时间。 第二三个参数是可以不传送的,data 默认为空 None,timeout 默认为 socket._GLOBAL_DEFAULT_TIMEOUT 第一个参数 URL 是必须要传送的,在这个例子里面我们传送了百度(也可以是任意网址)的 URL,执行 urlopen 方法之后,返回一个 response 对象,返回信息便保存在这里面,response 对象有一个 read 方法,可以返回获取到的网页内

2、Post方式

我们引入了 urllib 库,现在我们模拟登陆 CSDN,当然上述代码可能登陆不进去,因为 CSDN 还有个流水号的字段,没有设置全,比较复杂在这里就不写上去了,在此只是说明登录的原理。一般的登录网站一般是这种写法。 我们需要定义一个字典,名字为 values,参数我设置了 username 和 password,下面利用 urllib 的 urlencode 方法将字典编码,命名为 data,构建 request 时传入两个参数,url 和 data,运行程序,返回的便是 POST 后呈现的页面内容。 注意上面字典的定义方式还有一种,下面的写法是等价的

import urllib import urllib2

values = {} values['username'] = "1016903103@qq"

values['password'] = "XXXX"

data = urllib.urlencode(values)

url = "http://passport.csdn/account/login?

from=http://my.csdn/my/mycsdn"

request = urllib2.Request(url,data)

response = urllib2.urlopen(request) print response.read()

3、GET方式     

至于 GET 方式我们可以直接把参数写到网址上面,直接构建一个带参数的 URL 出来即可。

import urllib import urllib2

values={} values['username'] = "1016903103@qq"

values['password']="XXXX"

data = urllib.urlencode(values)

url = "http://passport.csdn/account/login"

geturl = url + "?"+data request = urllib2.Request(geturl)

response = urllib2.urlopen(request) print response.read()

你可以 print geturl,打印输出一下 url,发现其实就是原来的 url 加?然后加编码后的参数 http://passport.csdn/account/login?username=1016903103%40qq&password=XXXX

更多推荐

Python爬虫基本代码附解析