介绍
这篇文章主要介绍python爬虫为什么会获取知乎内容失败,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
代码:
_Zhihu_URL =, & # 39; http://www.zhihu.com& # 39; +=_Login_URL _Zhihu_URL & # 39;/登录# 39; +=_Captcha_URL_Prefix _Zhihu_URL & # 39;/captcha.gif ? r=& # 39; 时间=_Cookies_File_Name & # 39; cookies.json& # 39; , 时间=_session 没有 _header =, {& # 39; X-Requested-With& # 39;:, & # 39; xmlhttprequest # 39;, ,,,,,,,,,,& # 39;推荐人# 39;:,& # 39;http://www.zhihu.com& # 39; ,,,,,,,,,,& # 39;用户代理# 39;:,& # 39;Mozilla/5.0, (Windows NT 6.3;, WOW64;, & # 39; ,,,,,,,,,,,,,,,,,,,,,,,,& # 39;三叉戟/7.0;,触摸;,LCJB;,房车:11.0)& # 39; ,,,,,,,,,,,,,,,,,,,,,,,,& # 39;,like 壁虎# 39; ,,,,,,,,,,& # 39;主机# 39;:,& # 39;www.zhihu.com& # 39;} , def get_captcha_url (): ,,,“““获取验证码网址 , ,,,::返回,验证码网址 ,,,:rtype: str ,,,,,, ,,,return _Captcha_URL_Prefix +, str (int (time.time (), *, 1000)) , def _save_captcha (url): ,,,global _session ,,,r =, _session.get (url) ,,,with 开放(& # 39;code.gif& # 39;,, & # 39; wb # 39;), as f: ,,,,,,,f.write (r.content) , def 登录(邮件=& # 39;& # 39;,,密码=& # 39;& # 39;,,验证码=& # 39;& # 39;,,savecookies=True): ,,,,,,不使用cookies.json,手动登陆知乎 , ,,,:param str 电子邮件:,邮箱 ,,,:param str 密码:,密码 ,,,:param str 验证码:,验证码 ,,,:param bool savecookies:,是否要储存饼干文件 ,,,::返回,一个二元素元祖,,,第一个元素代表是否成功(0表示成功), ,,,,,,,如果未成功则第二个元素表示失败原因 ,,,:rtype:, (int, dict类型) ,,,,,, ,,,global _session ,,,global _header ,,,data =,{& # 39;电子邮件# 39;:,电子邮件,,& # 39;密码# 39;:,密码, ,,,,,,,,,,,& # 39;rememberme& # 39;:, & # 39; y # 39;,, & # 39;验证码# 39;:,验证码} ,,,r =, _session.post (_Login_URL, data=https://www.yisu.com/zixun/data) j=r.json () c=int (j [' r ']) m=j(“味精”) 如果c==0和savecookies是正确的: 张开(_Cookies_File_Name ' w ') f: json.dump (_session.cookies.get_dict (), f) 返回c,米 def create_cookies (): ”““创建饼干文件,请跟随提示操作 返回:没有 :rtype:没有 ”“” 如果os.path.isfile (_Cookies_File_Name)是假的: 电子邮件=输入(“电子邮件:”) 密码=输入('密码:') url=get_captcha_url () _save_captcha (url) 打印(“请检查代码。gif的验证码) 验证码=输入('验证码:') 代码,味精=登录(电子邮件,密码,验证码) 如果代码==0: 打印(“饼干文件创建了!”) 其他: 打印(味精) os.remove (“code.gif”) 其他: 打印(请先删除(' + _Cookies_File_Name + ']。) def _init (): 全球_session 如果_session没有: _session=requests.session () _session.headers.update (_header) 如果os.path.isfile (_Cookies_File_Name): 张开(_Cookies_File_Name ' r ') f: cookies_dict=json.load (f) _session.cookies.update (cookies_dict) 其他: 打印(“没有饼干文件,这可能使错了。) 打印(“如果你将create_cookies或登录下运行, 请忽略我。) _session。帖子(_Login_URL、数据={}) 其他: 提高异常(调用init函数两次) _init ()
以上是python爬虫为什么会获取知乎内容失败的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!