爬虫知乎登陆

作者: OrangeLoveMilan | 来源:发表于2017-12-21 23:22 被阅读129次

爬虫入门

功能:
知乎算是对爬虫比较友好的网站了,但是!
现在登陆验证码很恶心,需要点击图中倒立的文字!这让我们这种本来识字就不多的人情何以堪/(ㄒoㄒ)/~~。于是采用替换url参数的方法,换个登陆验证码登陆,验证码需要手动输入。

#coding=utf-8
import urllib2
import re
from bs4 import BeautifulSoup
import requests
import time

url = "https://www.zhihu.com/#signin"
requests.adapters.DEFAULT_RETRIES = 511
###
定义函数,输出验证码
###

def captcha(captcha_data):
    with open("captcha.jpg","wb")as f:
        f.write(captcha_data)
    text = raw_input("请输入验证码:")
    return text

###
通过抓包可以发现,验证码图片是由unix时间戳生成的,于是我们可以自己抓出登陆时的四位数字字母验证码
###
def zhihulogin():
    while True:
        try:
            sess = requests.Session()
            sess.keep_alive = False
            headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}

            html = sess.get(url,headers = headers).text
            bs = BeautifulSoup(html,"lxml")

            _xsrf = bs.find("input",attrs={"name":"_xsrf"}).get("value")

            captcha_url = "https://www.zhihu.com/captcha.gif?r=%d&type=login" %(time.time() * 1000)

            captcha_data = sess.get(captcha_url,headers =headers).content
            text = captcha(captcha_data)
            data = {
                "_xsrf":_xsrf,
                "email":email,
                "password":pwd,
                "captcha":text
            }

            response = sess.post("https://www.zhihu.com/login/email",data = data,headers = headers)
            print response.text
            print captcha_url

            print _xsrf
            break
        except:
###
这里不加sleep的话,好像会报ssl最大连接数的错误,具体的错误日志忘了(lll¬ω¬)
###
            time.sleep(5)


if __name__ == "__main__":
    zhihulogin()

结束语

执行时需要把脚本里面的用户名和密码换成有效的,然后执行脚本,打开抓出的图片,输入验证码,就可以登陆知乎啦

相关文章

  • 爬虫知乎登陆

    爬虫入门 功能:知乎算是对爬虫比较友好的网站了,但是!现在登陆验证码很恶心,需要点击图中倒立的文字!这让我们这种本...

  • Python爬取知乎与我所理解的爬虫与反爬虫

    知乎已经成为了爬虫的训练场,本文利用Python中的requests库,模拟登陆知乎,获取cookie,保存到本地...

  • 模拟登陆存在问题

    学习Python爬虫(七)--Scrapy模拟登录的post模拟登陆后,自己写了模拟登陆知乎首页的代码。 测试后发现无效

  • headers的详细讲解

    本文章属于爬虫入门到精通系统教程第七讲 直接开始案例吧。 本次我们实现如何模拟登陆知乎。 1.抓包 首先打开知乎登...

  • 爬点小黄图-3-带你走进需要用户登录的社区

    那就拿简书试水吧 这是登陆时post的表单 哈哈,极验验证太吊,我也回归爬虫入门专用模拟登录网页知乎吧! 这是知乎...

  • 知乎爬虫

    import reimport osimport jsonimport timeimport execjsimpo...

  • Java 知乎爬虫

    目标 爬取知乎用户信息,并作简要分析。所爬的对象是关注者≥10的用户,因为: 关注者数量<10的用户,很多的僵尸用...

  • 爬虫 知乎回答

  • python 知乎爬虫

    依然是使用requests主要的问题是模拟登陆: 通过chrome开发者工具可以了解到,登陆的数据有这么一些,但是...

  • 爬虫之反爬虫

    爬虫的攻防战:爬虫与反爬虫的博弈 - 知乎 (zhihu.com)[https://zhuanlan.zhihu....

网友评论

    本文标题:爬虫知乎登陆

    本文链接:https://www.haomeiwen.com/subject/bhvzwxtx.html