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老师最后讲的段子好污------------------不过我喜欢☺☺

浙公网安备 33010602011771号