IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python爬虫系列-将知乎收藏发送到Evernote/印象笔记之三

    admin发表于 2014-03-14 04:52:01
    love 0

    将知乎收藏发送到Evernote/印象笔记之三

    前端时间抽空把很久之前在知乎上问题答案重新修改了一下代码、已经可以完全的将所有的知乎收藏文章发送到Evernote/印象笔记中、后来有朋友希望能够增加功能、将知乎上我关注的问题也都转发到Evernote/印象笔记中、所以才有了这篇文章。

    功能分析

    1.  取到"我关注的问题"下面所有的问题列表
    2.  然后问题列表里面url提取出来
    3.  访问每一个单独的收藏URL、提出里面文章标题
    4.  访问每一个单独的收藏URL、提取里面的文章内容
    5.  通过邮件将文章内容发送到印象笔记/Evernote中
    

    从第三步到第六步我在之前的代码中已经完成了、现在要做的就是前面2个功能。

    但是在做的过程中、发现如果要取得我关注的问题列表、需要先登录知乎网站。所以再次之前我们要写一个登陆模块来登陆知乎。

    知乎登陆功能模块

    1.  通过读取config.ini配置文件里面知乎账号密码
    2.  然后登陆知乎网站
    3.  判断登陆状态
    4.  然后给一个变量赋值来确定是否登录成功
    

    开始写代码

    先看看我们需要用到的模块

    import requests
    import re
    

    Login_Zhihu()函数;

    def Login_Zhihu(email,password):
    """先登录知乎网站之后才能访问"我关注的问题"列表
    """
    
    zhihu_login = r"http://www.zhihu.com/login"
    login_status = "我关注的问题"
    global zhihu_status
    global zhihu_session
    zhihu_session = requests.Session() #用requests设置cookie
    headers = {
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0)\
        Gecko/20100101 Firefox/24.0",
        "Referer":"http://www.zhihu.com/login"
            }
    
    #提交账号密码
    logininfo = {"email":email,
                "password":password,
                "sign-button":"登录"}
    
    #post登录知乎网站
    login = zhihu_session.post(zhihu_login,data=logininfo, headers=headers, timeout=10)
    #print (post.text)
    if login.status_code == 200: #判断是否post成功
        html_text = login.text
    
        if re.search(login_status, html_text) != None:#判断登录状态
            print ("Login Success")
            zhihu_status = "Login Success"
    
        else:
            print ("Login Failure")
            zhihu_status = "Login Failure"
    

    修改zhihu_to_evernote文件

    1.  修改读取config.ini功能、读取知乎账号密码
        zhihu_email = cf.get("info", "zhihu_email")
        zhihu_password = cf.get("info", "zhihu_password")
    
    2.  添加一个if语句来判断是否需要登陆知乎网站、也就是说如果用户在config.ini里面配置了知乎账号密码就登陆、然后把"我关注的问题"发送到印象笔记中,没有配置就吧"我收藏的问题"发送到印象笔记中。
        if zhihu_email != "no":
                follow_url = "http://www.zhihu.com/question/following"
             print ("Follow")
                login.Login_Zhihu(zhihu_email,zhihu_password)
            if login.zhihu_status == "Login Success": #判断是否登录成功
                    Collect_url(follow_url,"follow")
                    for i in url_list:
                        print (i)
                        Email_zhihu_content(i)
            else:
                    print (login.zhihu_status)
    

    到此为止我们对zhihu_to_evernote的修改就算完成了、只要在config.ini添加好自己的知乎账号密码之后就可以把我关注的问题发送到Evernote/印象笔记中、如果需要发送我收藏的问题就在config.ini的账号密阿门一栏填写no即可。

    相关连接地址

    1. Python爬虫系列-将知乎收藏批量转入Evernote/印象笔记中
    2. Python爬虫系列-将知乎收藏批量转入Evernote/印象笔记之二
    3. GitHub地址


沪ICP备19023445号-2号
友情链接