mp

#16进制 base64
import base64
import requests
from pyquery import PyQuery as pq

class Decode:
    def getHex(self,param1):
        return {
            'str': param1[4:],#截取前面四个数字字母之后
            'hex': ''.join(list(param1[:4])[::-1]),#四个数字字母截取后数字倒序输出
        }

    def getDecimal(self, param1):
        loc2 = str(int(param1, 16))#四个数字字母转换16进制数
        print(loc2)#
        return {
            'pre': list(loc2[:2]),#四个 数字分为两个
            'tail': list(loc2[2:]),
        }

    def substr(self, param1, param2):
        loc3 = param1[0: int(param2[0])]
        print(loc3)
        loc4 = param1[int(param2[0]): int(param2[0]) + int(param2[1])]
        print("loc4",loc4)
        return loc3 + param1[int(param2[0]):].replace(loc4, "")

    def getPosition(self,param1, param2):
        param2[0] = len(param1) - int(param2[0]) - int(param2[1])
        return param2

    def decode(self, code):
        dict2 = self.getHex(code)
        dict3 = self.getDecimal(dict2['hex'])
        print("dict3", dict3['pre'])  #提取 四个数字前两个数字
        str4 = self.substr(dict2['str'], dict3['pre'])#提取 截取四个之后 其余部分
        return base64.b64decode(self.substr(str4, self.getPosition(str4, dict3['tail'])))

    def crawl_video_url(self, url):
        response = requests.get(url).content
        d = pq(response)##初始化为PyQuery对象
        code= d('meta[property="og:video:url"]').attr('content')
        result = self.decode(code)
        print(result)


if __name__ == '__main__':
    url = "http://www.meipai.com/media/816057957"
    Decode().crawl_video_url(url)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,你想知道如何删除Map中的元素。 方法一,根据Java代码的引用,可以使用`deleteByMap`方法来删除Map中的元素。该方法接受一个Map作为参数,以键值对的形式指定要删除的条件。示例代码如下: ```java Map<String, Object> userMap = new HashMap<>(); userMap.put("name", "王卡"); userMap.put("age", 18); int i = userMapper.deleteByMap(userMap); System.out.println("删除" + i); ``` 其中,`userMapper`是一个Mapper对象,`deleteByMap`方法将根据传入的`userMap`来删除相应的记录。 方法二,根据C++代码的引用,可以使用迭代器遍历Map并使用`erase`方法来删除元素。示例代码如下: ```cpp #include <iostream> #include <map> using namespace std; int main() { map<int, string> mp = {{1, "111"}, {2, "222"}}; cout << mp.size() << endl; // 输出 2 for (auto it = mp.begin(); it != mp.end();) { if (it->first == 1) { mp.erase(it++); } else { ++it; } } cout << mp.size() << endl; // 输出 1 return 0; } ``` 其中,`mp`是一个Map对象,使用迭代器遍历Map并判断要删除的键值对,然后使用`erase`方法来删除对应的元素。 方法三,根据Go语言代码的引用,可以使用`delete`关键字来删除Map中的元素。示例代码如下: ```go package main import "fmt" func main() { mp := map[int]string{1: "111", 2: "222"} fmt.Println(len(mp)) // 输出 2 delete(mp, 1) fmt.Println(len(mp)) // 输出 1 } ``` 其中,`mp`是一个Map对象,使用`delete`关键字来删除键为1的元素。 综上所述,你可以根据不同的编程语言选择适合的方法来删除Map中的元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值