0703学习笔记

一:鸡汤部分

  1,alex大神为我们讲了一堂生动的不学python无已立的课,受益匪浅,我也是一时冲动从一个天天坐办公室模拟仿真的理科生,投入python和AI的大潮中去,面对未来的种种已经被说的天火乱坠的趋势,我还是毫无理由、不假思索的就相信了,我不知道我的选择对不对,但我不后悔,或许在我年幼的心灵深处,就有一个科学梦吧。alex灌的从来就不是鸡汤,他只是对于我们这些还没有清醒的人、或者有一大部分装睡的人,扯着衣领焦急的说,醒醒吧骚年,错过这个风口就没有下个店了。所以,感谢alex让我这条路走的更加心安理得,更加会自我安慰!

  2,梦想的话题先放到一边,我只是一个刚毕业的大学生而已,就算有梦想那也是梦里想想而已,我打算一步一步来,不问耕耘,只求小有收货,从python基础慢慢来,毕竟我只是一个零基础的小白用户,大概自学了3个多月,基础知识看的差不多,在博客园看了alex、peiqi和其他的一些博客,也网上报了一些课程,跟着学到了很多很多,也逐渐了解了这些在云端的人,昨天跟着直播听到真声,甚是亲切,哈哈,下面就说说我昨天晚上的收货。

二:拉勾网爬虫项目

  1,登陆拉勾网

    - 使用request请求,查看是否是get或者post请求,包含url,header等等

    -第一座大山:

      --window.X_Anti_Forge_Code = data.code;

      --window.X_Anti_Forge_Token = data.token;

      -- 获取data.code和data.token

      

      

r1 = requests.get(
    url='https://passport.lagou.com/login/login.html',
    headers={
        'Host': 'passport.lagou.com',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
    }
)

all_cookie.update(r1.cookies.get_dict())

X_Anti_Forge_Token = re.findall(r"window.X_Anti_Forge_Token = '(.*?)'", r1.text, re.S)[0]
X_Anti_Forge_Code = re.findall(r"window.X_Anti_Forge_Code = '(.*?)'", r1.text, re.S)[0]

    --第二座大山:cookies,每一次提交请求的时候后台会修改cookies的值,因此需要每次提交的时候对cookies进行更新。

    

# ############### 2. 用户名密码登录 ###############
r2 = requests.post(
    url='https://passport.lagou.com/login/login.json',
    headers={
        'Host': 'passport.lagou.com',
        'Referer': 'https://passport.lagou.com/login/login.html',
        'X-Anit-Forge-Code': X_Anti_Forge_Code,
        'X-Anit-Forge-Token': X_Anti_Forge_Token,
        'X-Requested-With': 'XMLHttpRequest',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    },
    data={
        'isValidate': True,
        'username': '15131255089',
        'password': 'ab18d270d7126ea65915cc22c0d',
        'request_form_verifyCode': '',
        'submit': '',

    },
    cookies=r1.cookies.get_dict()
)

all_cookie.update(r2.cookies.get_dict())

# ############### 3. 用户授权 ###############
r3 = requests.get(
    url='https://passport.lagou.com/grantServiceTicket/grant.html',
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'

    },
    allow_redirects=False,
    cookies=all_cookie

)
#在次数对cookies进行更新,使得下次能够访问到正确的cookies
all_cookie.update(r3.cookies.get_dict())

    --第三座大山:这一次的请求需要携带上次的返回值才能访问成功

    

# ############### 6. 查看 ###############
r6 = requests.get(
    url='https://gate.lagou.com/v1/neirong/account/users/0/',
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
        'X-L-REQ-HEADER': "{deviceType:1}",
        'Origin': 'https://account.lagou.com',
        'Host': 'gate.lagou.com',
    },
    cookies=all_cookie

)
r6_json = r6.json()
all_cookie.update(r6.cookies.get_dict())

# ############### 7. 修改个人信息 ###############
r7 = requests.put(
    url='https://gate.lagou.com/v1/neirong/account/users/0/',
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
        'Origin': 'https://account.lagou.com',
        'Host': 'gate.lagou.com',
    #在此处用到了r6的结果返回值
'X-Anit-Forge-Code': r6_json['submitCode'], 'X-Anit-Forge-Token': r6_json['submitToken'], 'X-L-REQ-HEADER': "{deviceType:1}", }, cookies=all_cookie, json={"userName": "wupeiqi888", "sex": "MALE", "portrait": "images/myresume/default_headpic.png", "positionName": '...', "introduce": '....'} ) print(r7.text)

      

三:总结

  首先感谢alex和peiqi老师带给我精彩的直播爬虫课程,虽然有一定的python基础,但peiqi老师把爬虫项目中的每一步都解释的很清楚,包括什么是爬虫,需要用到哪些基础知识,爬虫分析的步骤等等,我印象最深刻的就是peiqi老师说的,不管任何的爬虫项目,只要认真去分析它的每一个请求的具体内容,就能搞明白它内部的网络请求和返回的机制,因此对于初学者建议我们去不要怕麻烦,分析每一步的爬虫请求,明白了内部的爬虫原理之后,可以利用现有的工具去优化它,减少代码量,比如首先分析每一步请求的requests携带cookies的内容,分析好了可以直接用requests.session跳过更新cookies的步骤,做相应的优化处理。

  总之受益匪浅,感谢alex和peiqi老师的精彩直播,期待今晚直播!!

ps:

  peiqi老师最后讲的段子好污------------------不过我喜欢☺☺

posted @ 2018-07-04 19:24  moxuefeifei  阅读(180)  评论(0)    收藏  举报