廖雪峰python函数 python3 廖学峰

python time.time得到的是什么时间time.time()得到廖雪峰python函数的是1970年到当前廖雪峰python函数的秒数
time.ctime()得到当前时间
Python爬取知乎与我所理解的爬虫与反爬虫 关于知乎验证码登陆的问题,用到了Python上一个重要的图片处理库PIL,如果不行,就把图片存到本地,手动输入 。
通过对知乎登陆是的抓包,可以发现登陆知乎 , 需要post三个参数 , 一个是账号,一个是密码,一个是xrsf 。
这个xrsf隐藏在表单里面,每次登陆的时候,应该是服务器随机产生一个字符串 。所有,要模拟登陆的时候,必须要拿到xrsf 。
用chrome (或者火狐 httpfox 抓包分析)的结果:
所以,必须要拿到xsrf的数值,注意这是一个动态变化的参数,每次都不一样 。
拿到xsrf,下面就可以模拟登陆了 。
使用requests库的session对象,建立一个会话的好处是,可以把同一个用户的不同请求联系起来,直到会话结束都会自动处理cookies 。
注意:cookies 是当前目录的一个文件,这个文件保存了知乎的cookie,如果是第一个登陆,那么当然是没有这个文件的,不能通过cookie文件来登陆 。必须要输入密码 。
这是登陆的函数 , 通过login函数来登陆,post 自己的账号,密码和xrsf 到知乎登陆认证的页面上去,然后得到cookie,将cookie保存到当前目录下的文件里面 。下次登陆的时候,直接读取这个cookie文件 。
这是cookie文件的内容
【廖雪峰python函数 python3 廖学峰】 以下是源码:
运行结果:
反爬虫最基本的策略:
爬虫策略:
这两个都是在http协议的报文段的检查,同样爬虫端可以很方便的设置这些字段的值,来欺骗服务器 。
反爬虫进阶策略:
1.像知乎一样,在登录的表单里面放入一个隐藏字段 , 里面会有一个随机数,每次都不一样,这样除非你的爬虫脚本能够解析这个随机数,否则下次爬的时候就不行了 。
2.记录访问的ip , 统计访问次数,如果次数太高,可以认为这个ip有问题 。
爬虫进阶策略:
1.像这篇文章提到的,爬虫也可以先解析一下隐藏字段的值,然后再进行模拟登录 。
2.爬虫可以使用ip代理池的方式 , 来避免被发现 。同时,也可以爬一会休息一会的方式来降低频率 。另外,服务器根据ip访问次数来进行反爬,再ipv6没有全面普及的时代,这个策略会很容易造成误伤 。(这个是我个人的理解) 。
通过Cookie限制进行反爬虫:
和Headers校验的反爬虫机制类似 , 当用户向目标网站发送请求时 , 会再请求数据中携带Cookie,网站通过校验请求信息是否存在Cookie,以及校验Cookie的值来判定发起访问请求的到底是真实的用户还是爬虫,第一次打开网页会生成一个随机cookie , 如果再次打开网页这个Cookie不存在,那么再次设置,第三次打开仍然不存在 , 这就非常有可能是爬虫在工作了 。
反爬虫进进阶策略:
1.数据投毒,服务器在自己的页面上放置很多隐藏的url,这些url存在于html文件文件里面,但是通过css或者js使他们不会被显示在用户看到的页面上面 。(确保用户点击不到) 。那么,爬虫在爬取网页的时候,很用可能取访问这个url , 服务器可以100%的认为这是爬虫干的,然后可以返回给他一些错误的数据,或者是拒绝响应 。
爬虫进进阶策略:
1.各个网站虽然需要反爬虫,但是不能够把百度 , 谷歌这样的搜索引擎的爬虫给干了(干了的话 , 你的网站在百度都说搜不到?。?。这样爬虫应该就可以冒充是百度的爬虫去爬 。(但是ip也许可能被识破,因为你的ip并不是百度的ip)

推荐阅读