(一)爬虫入门

# -*- coding: utf-8 -*-		
import urllib2
import urllib
 
#最简单的网页内容抓取
request = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(request)
print response.read()

#post方式发送请求 (在URL中看不到参数值)
value = {'txtuUerName':'2017140845','txtPassword':'304118'}
data = urllib.urlencode(value)      #对参数进行编码
url = 'http://ecard.bupt.edu.cn/login.aspx'
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()
#get方式发送请求(在URL地址中直接看到参数值)
values={}
values['username'] = "1016903103@qq.com"
values['password']="XXXX"
data = urllib.urlencode(values) 
url = "http://passport.csdn.net/account/login"
geturl = url + "?"+data
request = urllib2.Request(geturl)
response = urllib2.urlopen(request)
print response.read()
#为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。
#agent就是请求的身份,如果没有写入请求身份,那么服务器不一定会响应,所以可以在headers中设置agent
#此处只是演示格式
url = 'http://www.server.com/login'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  
values = {'username' : 'cqc',  'password' : 'XXXX' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read() 
#我们还有对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,
#所以我们还可以在headers中加入referer


#例如我们可以构建下面的headers
headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)','Referer':'http://www.zhihu.com/articles' }


其他的有必要的可以审查浏览器的headers内容,在构建时写入同样的数据即可。
#如果我们需要用到Cookie,只用默认opener是不能达到目的的
#cookielib模块的主要作用是提供可存储cookie的对象
#利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能
import cookielib
#声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler=urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#此处的open方法同urllib2的urlopen方法,也可以传入request
response = opener.open('http://www.baidu.com')
for item in cookie:
    print 'Name = '+item.name
    print 'Value = '+item.value
#如果我们想将cookie保存到文件中,这时我们就要用到FileCookieJar这个对象了,
#在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存
import cookielib
#设置保存cookie的文件,同级目录下的cookie.txt
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)
#利用cookie模拟网站登录,登录我的迎新网站,成功!
import urllib2
import cookielib
 
filename = 'cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata = urllib.urlencode({
			'username':'2017****',
            'password':'11*****'
        })
#登录研究生系统的URL
loginUrl = 'https://auth.bupt.edu.cn/authserver/login?service=http%3a%2f%2fwelcome.bupt.edu.cn%2findex.portal'
#模拟登录,并把cookie保存到变量
result = opener.open(loginUrl,postdata)
#保存cookie到cookie.txt中
cookie.save(ignore_discard=True, ignore_expires=True)
#利用cookie请求访问另一个网址,
gradeUrl = 'http://welcome.bupt.edu.cn/index.portal?.pn=p21542'
#请求访问
result = opener.open(gradeUrl)
print result.read()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值