爬虫Day1

1,cookie与session的区别
cookie数据保存在客户端,session数据保存在服务器端,cookies是属于session对象的一种Cookies不会占服务器资源,是存在客服端内存或者一个cookie的文本文件中;而“Session”则会占用服务器资源。服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。在销毁之前,程序员可以将用户的一些数据以Key和Value的形式暂时存放在这个 Session中。当然,也有使用数据库将这个Session序列化后保存起来的,这样的好处是没了时间的限制,坏处是随着时间的增加,这个数据 库会急速膨胀,特别是访问量增加的时候。一般还是采取前一种方式,以减轻服务器压力。Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。
2,爬虫封装函数

from urllib import request,parse
from urllib.error import HTTPError,URLError
def get(url,headers=None):
    return urlrequest(url,headers=headers)
def post(url,form=None,headers=None):
    return urlrequest(url,form,headers=headers)
def urlrequest(url,form=None,headers=None):
    user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
    if headers==None:
        headers={'User-Agent':user_agent}
    html_byte=b''
    try:
        if form:
            form_str=parse.urlencode(form)
            form_byte=form_str.encode('utf-8')
            req=request.Request(url,data=form_byte,headers=headers)
        else:
            req=request.Request(url,headers=headers)
        response=request.urlopen(req)
        html_byte=response.read()
    except HTTPError as e:
        print(e)
    except URLError as w:
        print(w)
    return html_byte
if __name__=='__main__':
    url='http://fanyi.baidu.com/sug'
    form={
        'kw':'小丑'
    }
    result=post(url,form)
    print(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值