先上代码,后分析出现的问题:

1 #coding:utf-8

2 importre3 from bs4 importBeautifulSoup4 importgzip5 importurllib.request6 importurllib.parse7 importhttp.cookiejar8 importssl9 importtime10

11 defget_opener(heads):12 cj=http.cookiejar.CookieJar()13 pro=urllib.request.HTTPCookieProcessor(cj)14 opener=urllib.request.build_opener(pro)15 header=[]16 for key,value inheads.items():17 header.append((key,value))18 opener.addheaders=header19 returnopener20

21 defungzip(data):22 try:23 print("正在解压....")24 data=gzip.decompress(data)25 print("解压完成")26 except:27 print("无需解压")28 returndata29

30 if __name__=="__main__":31 ssl._create_default_https_context =ssl._create_unverified_context32 heads={33 "Accept":"text/html, application/xhtml+xml, */*",34 "Accept-Language":"zh-CN",35 "User-Agent":"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0",36 "Accept-Encoding": "gzip, deflate",37 "Host": "www.zhihu.com",38 "DNT": "1",39 "Connection": "Keep-Alive"

40 }41 opener=get_opener(heads)42 url="https://www.zhihu.com/"

43 op=opener.open(url)44 data1=op.read()45 data1=ungzip(data1).decode('utf-8')46 #print(data1.decode('utf-8'))

47 #print(op.read().decode('utf-8'))

48 ## xsrf=re.findall(r'name="_xsrf" value=".*"',data1)

49 ## print(xsrf[0])

50 ## print(type(xsrf[0]))

51 ## value=xsrf[0].split(" ")

52 ## print(value)

53 ## _xsrf=re.findall(r'".*"',value[1])[0]

54 ## print(_xsrf)

55 soup=BeautifulSoup(data1,"html.parser")56 _xsrf=soup.find("input",{'type':'hidden'}).get("value")57 password="hzc19911005"

58 #captcha_type="cn"

59 phone_num="13267243809"

60 captcha_url="https://www.zhihu.com/captcha.gif?r=%d&type=login"% (time.time() * 1000)61 captchadata=opener.open(captcha_url).read()62 with open("1.gif",'wb') as file:63 file.write(captchadata)64 yanzhengma=input("captcha:")65 postdata={66 "_xsrf":_xsrf,67 "password":password,68 #"captcha_type":captcha_type,#不能带有这个字段

69 "phone_num":phone_num,70 "captcha":yanzhengma71 }72 postdata=urllib.parse.urlencode(postdata).encode()73 login_url="https://www.zhihu.com/login/phone_num"

74 op2=opener.open(login_url,postdata)75 login_data=op2.read()76 data=ungzip(login_data).decode("utf-8")77 print(data)78 result=dict(eval(data))79 if result["r"]==0:80 print("登录成功")81

1、出现“SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)”:

Python 2.7.9 之后版本引入了一个新特性

当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书

当目标使用的是自签名的证书时就会爆出一个

urllib.URLError: 的错误消息,

处理方法:

importssl

ssl._create_default_https_context= ssl._create_unverified_context

2、出现验证码错误,返回: 验证码过期:{ "r": 1, "errcode": 1991829, "data": {"captcha":"验证码回话无效 :(","name":"ERR_VERIFY_CAPTCHA_SESSION_INVALID"}, "msg": "验证码回话无效 :(" }:

发给服务器的post数据没有带验证码:"captcha",解决办法:postdata={

"_xsrf":_xsrf,

"password":password,

#"captcha_type":captcha_type,#不能带有这个字段

"phone_num":phone_num,

"captcha":yanzhengma

}

验证码过期,解决办法:先从url="https://www.zhihu.com/captcha.gif?r=%d&type=login"% (time.time() * 1000)下载图片保存在本地,然后人工识别,手动输入验证码

1 captcha_url="https://www.zhihu.com/captcha.gif?r=%d&type=login"% (time.time() * 1000)2 captchadata=opener.open(captcha_url).read()3 with open("1.gif",'wb') as file:4 file.write(captchadata)5 yanzhengma=input("captcha:")

python爬带用户名密码的网页_python爬虫:使用账号、密码和验证码登录知乎网页...相关推荐

  1. python爬音乐评论生成词云图_python爬虫+词云图,爬取网易云音乐评论

    又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...

  2. python爬数据以字典变量保存_python爬虫第7篇——爬取的数据如何存档

    不能让你暴富,但至少可以奔小康了! 想了解更多精彩内容,快来关注南大盛联 阅读本文,假定你使用的是Windows操作系统下面的python3.X版本. 并且已经掌握了一些基本的python操作.否则, ...

  3. python爬取今日头条后台数据_Python爬虫实战入门五:获取JS动态内容—爬取今日头条...

    之前我们爬取的网页,多是HTML静态生成的内容,直接从HTML源码中就能找到看到的数据和内容,然而并不是所有的网页都是这样的. 有一些网站的内容由前端的JS动态生成,由于呈现在网页上的内容是由JS生成 ...

  4. python爬带用户名密码的网页_python爬虫用户名密码登录POST

    # -*- coding: utf-8 -*- """ Created on Wed Jun 6 13:18:58 2018 @author: Lenovo " ...

  5. python爬虫需要登录密码账户_python爬虫:使用账号、密码和验证码登录知乎网页...

    先上代码,后分析出现的问题: 1 #coding:utf-8 2 importre3 from bs4 importBeautifulSoup4 importgzip5 importurllib.re ...

  6. python 爬取贝壳网小区名称_Python爬虫实战:爬取贝壳网二手房40000条数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于啤酒就辣条 ,作者啤酒就辣条 一.网页分析 爬取贝壳网石家庄二 ...

  7. python爬取去哪网数据_Python爬虫入门:使用Python爬取网络数据

    1 网络爬虫 引用百度百科的定义:网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 简单的说,就是有一个程序可以自动去访问网页. 2 Python爬虫 如何实现爬虫? 简单的讲,一共 ...

  8. python爬取新浪新闻首页_Python爬虫学习:微信、知乎、新浪等主流网站的模拟登陆爬取方法...

    微信.知乎.新浪等主流网站的模拟登陆爬取方法 摘要:微信.知乎.新浪等主流网站的模拟登陆爬取方法. 网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些 ...

  9. python爬去智联招聘网_Python爬虫爬取智联招聘(进阶版)

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 图片:Westworld Season 2 作者 王强 简介 Python追随者, ...

最新文章

  1. 【Java】LeetCode 876 获取链表中间节点
  2. mysql后台修改表_mysql之约束以及修改数据表
  3. php-7.2.13的安装,php7.2 安装mcrypt扩展
  4. 把第三方jar包放入本地仓库
  5. WPF将数据库和GridView绑定并更改GridView模板
  6. docker重启后容器消失_docker设置固定ip地址
  7. Java 集合体系详解——List体系有序集合
  8. centos7 update network time
  9. 【php】面向过程的文件上传过程
  10. FastDFS上传下载原理解析
  11. ansys静态结构分析
  12. linux中man命令的基本用法,linux中的man命令的详细解释
  13. 大话神仙仙旅奇缘答案大全
  14. TIA博途_序列化指令Serialize的具体使用方法示例
  15. 笔记神器-Obsidian快速使用入门教程
  16. OTA本质与实现流程分析
  17. 手把手教你学51单片机-变量进阶与点阵LED
  18. 跨境电商选品避坑指南-成都扬帆凌远跨境电商
  19. 字符常量/字符变量 计算sizeof
  20. FlashPaper打印机未能正确安装的解决办法

热门文章

  1. 使用fiddle处理跨域
  2. 转载 PVE 防火墙
  3. 关于PR硬件加速报错 错误代码3解决办法
  4. 汽车APP功能开发特点主要有哪些
  5. 大一作业HTML期末网页作业(化妆品网站制作) html+css+js 雅诗兰黛美妆网站制作
  6. 拼多多API接口,item_search - 按关键字搜索商品
  7. 中国知网html如何复制,中国知网如何快速导出参考文献的格式? 来看看吧
  8. 如何使用kodi Mac安装中文插件
  9. linux全盘扫描,3个有用的基于GUI和终端的Linux磁盘扫描工具
  10. PyQt模拟微信聊天页面开发