码迷,mamicode.com
首页 > 编程语言 > 详细

011 python接口 bs4提取结果

时间:2018-11-03 14:11:53      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:script   md5加密   结果   密码加密   mit   pass   ram   coding   type   

技术分享图片

 

‘‘‘
时间:2018/11/03
功能:bs4提取结果
目录:
    一: 登录拉勾网
‘‘‘

 

一: 登录拉勾网
# coding:utf-8
import requests
import re
from bs4 import BeautifulSoup
import urllib3
import hashlib
urllib3.disable_warnings()
import sys

class LoginLgw():
    def __init__(self, s):
        self.s = s

    def getToeknCode(self):
        ‘‘‘
        获取拉勾网 - token和code
        :return:    {"X_Anti_Forge_Token":"xxx", "X_Anti_Forge_Code":"xxx"}
        ‘‘‘
        # 更新数据 - 头部信息
        url = "https://passport.lagou.com/login/login.html"
        head = {
             "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
            }
        self.s.headers.update(head)

        # 获取数据 - token和code
        data = self.s.get(url, verify = False)
        soup = BeautifulSoup(data.content, "html.parser", from_encoding="utf-8")
        tokenCode = {}
        try:
            t = soup.find_all("script")[1].get_text()
            tokenCode[X_Anti_Forge_Token] = re.findall(r"Token = ‘(.+?)‘", t)[0]
            tokenCode[X_Anti_Forge_Code] = re.findall(r"Code = ‘(.+?)‘", t)[0]
            return tokenCode
        except:
            print("Get Faild")
            tokenCode[X_Anti_Forge_Token] = ""
            tokenCode[X_Anti_Forge_Code] = ""
            return tokenCode

    def encryptPwd(self, passwd):
        ‘‘‘
        密码加密
        :param passwd: 原始密码
        :return:       加密密码
        ‘‘‘
        passwd = hashlib.md5(passwd.encode("utf-8")).hexdigest()    # md5加密
        passwd = "veenike" + passwd + "veenike"                     # veennike : js文件 - 写死的值
        passwd = hashlib.md5(passwd.encode("utf-8")).hexdigest()    # md5加密
        return passwd

    def login(self, user, password):
        ‘‘‘
        登录拉勾网
        :param user:        用户名
        :param password:    密码
        :return:        登录成功 - 服务信息
        ‘‘‘
        # 获取数据 - token和code
        tokenCode = self.getToeknCode()
        print(tokenCode)

        # 密码加密
        password = self.encryptPwd(password)
        print(password)

        # 更新数据 - 头部信息
        url = "https://passport.lagou.com/login/login.json"
        head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
        "X-Requested-With": "XMLHttpRequest",
        "X-Anit-Forge-Token": tokenCode[X_Anti_Forge_Token],
        "X-Anit-Forge-Code": tokenCode[X_Anti_Forge_Code],
        "Referer": "https://passport.lagou.com/login/login.html",
        }
        self.s.headers.update(head)

        # 登录网站
        body = {
                "isValidate":true,
                "username": user,
                "password": password,
                "request_form_verifyCode": "",
                "submit": ""
        }
        r = self.s.post(url, data=body, verify=False)
        try:
            print(r.text)
            return r.json()
        except:
            print("login faild: %s" %r.text)
            return None

if __name__ == "__main__":
    s = requests.session()
    lgw = LoginLgw(s)
    lgw.login("user", "password")
{X_Anti_Forge_Token: a2724c9e-40be-493b-84a9-227a3cafe955, X_Anti_Forge_Code: 77786694}
d45ef25791078e956e6915ba194d776a
{"content":{"rows":[]},"message":"操作成功","state":1,"submitCode":76585064,"submitToken":"1e756b35-4bbe-4853-b1b8-767042f86771"}

 

 

011 python接口 bs4提取结果

标签:script   md5加密   结果   密码加密   mit   pass   ram   coding   type   

原文地址:https://www.cnblogs.com/huafan/p/9900261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!