{"id":92581,"date":"2026-08-10T17:01:16","date_gmt":"2026-08-10T09:01:16","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/92581.html"},"modified":"2026-08-10T17:01:16","modified_gmt":"2026-08-10T09:01:16","slug":"b-%e7%ab%99-up-%e4%b8%bb%e5%8a%a8%e6%80%81%e7%88%ac%e5%8f%96%e5%85%a8%e6%b5%81%e7%a8%8b%ef%bc%9a%e4%bb%8e%e9%a6%96%e9%a1%b5%e5%88%b0%e7%bf%bb%e9%a1%b5%e7%9a%84%e5%ae%8c%e6%95%b4%e9%93%be%e8%b7%af","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/92581.html","title":{"rendered":"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def"},"content":{"rendered":"<p>\u4e00\u3001\u95ee\u9898\u7684\u672c\u8d28<\/p>\n<p>\u5982\u679c\u4f60\u52a8\u624b\u5199\u8fc7 B \u7ad9\u722c\u866b&#xff0c;\u5927\u6982\u7387\u649e\u4e0a\u8fc7\u8fd9\u4e00\u5e55&#xff1a;\u7b2c\u4e00\u9875\u7684\u52a8\u6001\u6570\u636e\u987a\u5229\u5230\u624b&#xff0c;\u7ffb\u5230\u7b2c\u4e8c\u9875\u63a5\u53e3\u9a6c\u4e0a\u7529\u56de {&#034;code&#034;: -352, &#034;message&#034;: &#034;\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41&#xff0c;\u8bf7\u7a0d\u540e\u518d\u8bd5&#034;} \u6216\u5e72\u8106 {&#034;code&#034;: -403}\u3002\u6362 User-Agent\u3001\u52a0 time.sleep\u3001\u751a\u81f3\u624b\u52a8\u4ece\u6d4f\u89c8\u5668\u62a0 Cookie\u2014\u2014\u7edf\u7edf\u4e0d\u7ba1\u7528\u3002<\/p>\n<p>\u6839\u6e90\u5728\u4e8e B \u7ad9\u5f15\u5165\u7684 wbi \u7b7e\u540d\u673a\u5236\u3002\u6240\u6709\u542b\u5206\u9875\u53c2\u6570\u7684 Web API&#xff08;\u52a8\u6001\u6d41\u3001\u89c6\u9891\u8bc4\u8bba\u3001\u7a7a\u95f4\u5386\u53f2\u7b49&#xff09;\u90fd\u5f3a\u5236\u8981\u6c42\u9644\u5e26\u4e00\u4e2a\u52a8\u6001\u8ba1\u7b97\u51fa\u7684 w_rid&#xff0c;\u8be5\u7b7e\u540d\u7684\u751f\u6210\u903b\u8f91\u85cf\u5728\u524d\u7aef\u9996\u9875 index.js \u4e2d\u4e00\u6bb5\u7ecf\u8fc7\u6df7\u6dc6\u5904\u7406\u7684 JavaScript \u91cc\u3002\u8fd9\u610f\u5473\u7740&#xff1a;\u6bcf\u4e00\u6b21\u7ffb\u9875\u3001\u6bcf\u4e00\u6761\u8bf7\u6c42&#xff0c;\u90fd\u5fc5\u987b\u91cd\u65b0\u751f\u6210\u4e00\u4e2a\u4e0e\u53c2\u6570\u4e00\u4e00\u7ed1\u5b9a\u7684\u7b7e\u540d\u503c\u3002<\/p>\n<p>\u672c\u6587\u5c06\u4ece\u96f6\u5f00\u59cb&#xff0c;\u4ee5\u7eaf Python \u5b8c\u6574\u590d\u73b0 wbi \u7b7e\u540d\u7684\u4e09\u6b65\u751f\u6210\u94fe\u8def&#xff0c;\u5e76\u5bf9\u63a5\u4f01\u4e1a\u7ea7\u4ee3\u7406\u65b9\u6848&#xff0c;\u6784\u9020\u4e00\u5957\u4ece\u5355\u673a\u8c03\u8bd5\u5230\u89c4\u6a21\u5316\u90e8\u7f72\u5747\u53ef\u843d\u5730\u7684\u52a8\u6001\u91c7\u96c6\u67b6\u6784\u3002<\/p>\n<h3>\u4e8c\u3001\u63a5\u53e3\u9006\u5411\u5206\u6790<\/h3>\n<p>B \u7ad9 UP \u4e3b\u52a8\u6001\u5217\u8868\u63a5\u53e3\u4e3a&#xff1a;<\/p>\n<p>GET https:\/\/api.bilibili.com\/x\/polymer\/web-dynamics\/v1\/feed\/space<\/p>\n<p>\u5173\u952e\u53c2\u6570\u62c6\u89e3\u5982\u4e0b&#xff1a;<\/p>\n<table>\n<tr>\u53c2\u6570\u8bed\u4e49\u6ce8\u610f\u4e8b\u9879<\/tr>\n<tbody>\n<tr>\n<td>host_mid<\/td>\n<td>\u76ee\u6807 UP \u4e3b uid<\/td>\n<td>\u53ef\u5728 UP \u4e3b\u4e2a\u4eba\u9875 URL \u4e2d\u76f4\u63a5\u83b7\u53d6<\/td>\n<\/tr>\n<tr>\n<td>offset<\/td>\n<td>\u5206\u9875\u6e38\u6807<\/td>\n<td>\u9996\u9875\u4f20\u7a7a\u5b57\u7b26\u4e32&#xff0c;\u540e\u7eed\u9875\u5fc5\u987b\u539f\u6837\u4f20\u9012\u4e0a\u4e00\u9875\u54cd\u5e94\u4e2d\u8fd4\u56de\u7684\u503c<\/td>\n<\/tr>\n<tr>\n<td>timezone_offset<\/td>\n<td>\u65f6\u533a\u504f\u79fb&#xff08;\u79d2&#xff09;<\/td>\n<td>\u56fa\u5b9a\u503c -480&#xff0c;\u4e1c\u516b\u533a<\/td>\n<\/tr>\n<tr>\n<td>w_rid<\/td>\n<td>wbi \u7b7e\u540d<\/td>\n<td>\u6bcf\u9875\u52a8\u6001\u8ba1\u7b97&#xff0c;\u643a\u5e26\u9519\u8bef\u5219\u76f4\u63a5\u62d2\u7edd<\/td>\n<\/tr>\n<tr>\n<td>wts<\/td>\n<td>Unix \u65f6\u95f4\u6233<\/td>\n<td>\u4e0e w_rid \u914d\u5bf9&#xff0c;\u53c2\u4e0e\u7b7e\u540d\u8ba1\u7b97<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u9996\u9875\u8bf7\u6c42\u793a\u4f8b&#xff1a;<\/p>\n<p>GET \/x\/polymer\/web-dynamics\/v1\/feed\/space?host_mid&#061;123456&amp;offset&#061;&amp;w_rid&#061;abc123&amp;wts&#061;1723000000<\/p>\n<p>\u7ffb\u9875\u7684\u5173\u952e\u5728\u4e8e\u54cd\u5e94\u4e2d\u7684 offset \u5b57\u6bb5&#xff1a;<\/p>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;code&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><br \/>\n  <span class=\"token string-property property\">&#034;data&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;items&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token operator\">&#8230;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;offset&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;1723000000_987654321&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string-property property\">&#034;has_more&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token boolean\">true<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u7b2c\u4e8c\u9875\u7684\u8bf7\u6c42\u4e2d offset \u5b57\u6bb5\u53d6\u503c\u4e3a\u4e0a\u4e00\u9875\u8fd4\u56de\u7684 &#034;1723000000_987654321&#034;&#xff0c;\u4e0e\u6b64\u540c\u65f6 w_rid \u5fc5\u987b\u6839\u636e\u5305\u62ec\u65b0 offset \u5728\u5185\u7684\u5b8c\u6574\u53c2\u6570\u96c6\u91cd\u65b0\u8ba1\u7b97\u3002\u8fd9\u662f\u7edd\u5927\u591a\u6570\u521d\u5b66\u8005\u8e29\u5751\u7684\u5730\u65b9\u2014\u2014\u5c06\u7b2c\u4e00\u9875\u7684 w_rid \u76f4\u63a5\u590d\u7528\u7ed9\u7b2c\u4e8c\u9875&#xff0c;\u5f97\u5230\u7684\u81ea\u7136\u662f 403\u3002<\/p>\n<h3>\u4e09\u3001wbi \u7b7e\u540d\u673a\u5236\u7684\u5b8c\u6574\u8fd8\u539f<\/h3>\n<p>wbi \u7b7e\u540d\u5e76\u975e\u56fa\u5b9a\u503c&#xff0c;\u6bcf\u8f6e\u7b7e\u540d\u9700\u7ecf\u4e09\u6b65\u751f\u6210\u3002<\/p>\n<h4>3.1 \u83b7\u53d6 img_key \u4e0e sub_key<\/h4>\n<p>\u8c03\u7528 https:\/\/api.bilibili.com\/x\/web-interface\/nav&#xff0c;\u54cd\u5e94\u4f53 data.wbi_img \u4e2d\u5305\u542b\u4e24\u4e2a CDN \u56fe\u7247 URL&#xff1a;<\/p>\n<p><span class=\"token punctuation\">{<\/span><br \/>\n  <span class=\"token string-property property\">&#034;data&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string-property property\">&#034;wbi_img&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n      <span class=\"token string-property property\">&#034;img_url&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;https:\/\/i0.hdslb.com\/bfs\/wbi\/7cd084941338484aae1ad9425b84077b.png&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n      <span class=\"token string-property property\">&#034;sub_url&#034;<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">&#034;https:\/\/i0.hdslb.com\/bfs\/wbi\/4932caff0ff746eab6f01bf08b70ac45.png&#034;<\/span><br \/>\n    <span class=\"token punctuation\">}<\/span><br \/>\n  <span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5206\u522b\u63d0\u53d6\u4e24\u4e2a URL \u6587\u4ef6\u540d\u4e2d\u4e0d\u542b\u6269\u5c55\u540d\u7684\u7eaf key \u90e8\u5206&#xff1a;<\/p>\n<p>img_key <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;7cd084941338484aae1ad9425b84077b&#034;<\/span><br \/>\nsub_key <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;4932caff0ff746eab6f01bf08b70ac45&#034;<\/span><\/p>\n<h4>3.2 \u6df7\u6392\u751f\u6210 mixin_key<\/h4>\n<p>\u5c06 img_key \u4e0e sub_key \u9996\u5c3e\u62fc\u63a5\u5f97\u5230\u4e00\u4e2a 64 \u4f4d\u5b57\u7b26\u4e32&#xff0c;\u518d\u901a\u8fc7\u4e00\u5f20\u7f16\u8bd1\u671f\u786c\u7f16\u7801\u7684\u6df7\u6392\u7d22\u5f15\u8868\u53d6\u51fa 32 \u4e2a\u5b57\u7b26&#xff0c;\u5373\u4e3a\u672c\u6b21\u8bf7\u6c42\u7684 mixin_key&#xff1a;<\/p>\n<p>MIXIN_KEY_ENC_TAB <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><br \/>\n    <span class=\"token number\">46<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">47<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">18<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">53<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">23<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">32<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">15<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">50<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">31<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">58<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">45<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">35<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">27<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">43<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">49<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">33<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">9<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">42<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">19<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">29<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">28<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">14<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">39<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">38<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">41<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">13<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">37<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">48<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">7<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">16<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">24<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">55<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">40<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">61<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">26<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">17<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">60<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">51<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">22<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">54<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">21<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">56<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">59<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">6<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">63<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">57<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">62<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">11<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">36<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">52<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">44<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">34<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">]<\/span><\/p>\n<p>\u8be5\u6df7\u6392\u8868\u6765\u81ea B \u7ad9\u524d\u7aef\u6df7\u6dc6\u4ee3\u7801\u7684\u9759\u6001\u63d0\u53d6&#xff0c;\u81ea wbi \u673a\u5236\u4e0a\u7ebf\u4ee5\u6765\u672a\u53d1\u751f\u53d8\u66f4&#xff0c;\u7a33\u5b9a\u6027\u6781\u9ad8\u3002key \u7684\u6709\u6548\u671f\u901a\u5e38\u4e3a 24 \u5c0f\u65f6&#xff0c;\u6bcf\u6b21\u542f\u52a8\u91c7\u96c6\u4efb\u52a1\u65f6\u5747\u5e94\u4ece nav \u63a5\u53e3\u91cd\u65b0\u62c9\u53d6&#xff0c;\u5207\u5fcc\u786c\u7f16\u7801\u3002<\/p>\n<h4>3.3 \u8ba1\u7b97 w_rid<\/h4>\n<p>\u5c06\u8bf7\u6c42\u53c2\u6570&#xff08;\u6392\u9664 w_rid \u672c\u8eab&#xff09;\u6309 key \u7684\u5b57\u5178\u5e8f\u6392\u5217&#xff0c;\u62fc\u63a5\u4e3a key1&#061;value1&amp;key2&#061;value2 \u5f62\u5f0f\u7684\u67e5\u8be2\u5b57\u7b26\u4e32&#xff0c;\u672b\u5c3e\u8ffd\u52a0 mixin_key&#xff0c;\u6574\u4f53\u53d6 MD5&#xff1a;<\/p>\n<p>raw <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;host_mid&#061;123456&amp;offset&#061;&amp;timezone_offset&#061;-480&amp;wts&#061;1723000000&#034;<\/span><br \/>\nsign_string <span class=\"token operator\">&#061;<\/span> raw <span class=\"token operator\">&#043;<\/span> mixin_key<br \/>\nw_rid <span class=\"token operator\">&#061;<\/span> hashlib<span class=\"token punctuation\">.<\/span>md5<span class=\"token punctuation\">(<\/span>sign_string<span class=\"token punctuation\">.<\/span>encode<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>hexdigest<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>\u4ee5\u4e0a\u4e09\u6b65\u6784\u6210\u4e86 wbi \u7b7e\u540d\u7684\u5b8c\u6574\u95ed\u73af\u3002\u5176\u672c\u8d28\u662f\u300c\u53c2\u6570\u4e32\u52a0\u76d0\u540e MD5\u300d&#xff0c;\u96be\u70b9\u5728\u4e8e\u76d0\u503c\u7684\u6765\u6e90\u4e0e\u7f16\u6392\u65b9\u5f0f\u3002<\/p>\n<h3>\u56db\u3001\u5b8c\u6574\u4ee3\u7801\u5b9e\u73b0<\/h3>\n<p>\u4ee5\u4e0b\u662f\u5c01\u88c5\u4e86 wbi \u7b7e\u540d\u4e0e\u5206\u9875\u7ffb\u9875\u903b\u8f91\u7684\u751f\u4ea7\u7ea7\u4ee3\u7801&#xff0c;\u53ef\u76f4\u63a5\u8fd0\u884c&#xff1a;<\/p>\n<p><span class=\"token keyword\">import<\/span> hashlib<br \/>\n<span class=\"token keyword\">import<\/span> random<br \/>\n<span class=\"token keyword\">import<\/span> time<br \/>\n<span class=\"token keyword\">import<\/span> httpx<br \/>\n<span class=\"token keyword\">from<\/span> typing <span class=\"token keyword\">import<\/span> Any<\/p>\n<p><span class=\"token comment\"># &#8212;- wbi \u6df7\u6392\u8868&#xff08;\u63d0\u53d6\u81ea B \u7ad9 index.js&#xff0c;\u957f\u671f\u7a33\u5b9a&#xff09; &#8212;-<\/span><br \/>\nMIXIN_KEY_ENC_TAB <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><br \/>\n    <span class=\"token number\">46<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">47<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">18<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">53<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">23<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">32<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">15<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">50<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">31<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">58<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">45<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">35<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">27<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">43<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">49<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">33<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">9<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">42<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">19<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">29<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">28<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">14<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">39<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">38<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">41<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">13<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">37<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">48<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">7<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">16<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">24<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">55<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">40<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">61<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">26<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">17<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">60<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">51<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token number\">22<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">54<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">21<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">56<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">59<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">6<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">63<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">57<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">62<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">11<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">36<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">52<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">44<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">34<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">]<\/span><\/p>\n<p>HEADERS<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n    <span class=\"token string\">&#034;User-Agent&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n        <span class=\"token string\">&#034;Mozilla\/5.0 (Windows NT 10.0; Win64; x64) &#034;<\/span><br \/>\n        <span class=\"token string\">&#034;AppleWebKit\/537.36 (KHTML, like Gecko) &#034;<\/span><br \/>\n        <span class=\"token string\">&#034;Chrome\/126.0.0.0 Safari\/537.36&#034;<\/span><br \/>\n    <span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token string\">&#034;Referer&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token string\">&#034;https:\/\/www.bilibili.com&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">}<\/span><\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">get_mixin_key<\/span><span class=\"token punctuation\">(<\/span>img_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> sub_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u901a\u8fc7\u6df7\u6392\u8868\u4ece img_key &#043; sub_key \u62fc\u63a5\u4e32\u4e2d\u63d0\u53d6 32 \u4f4d mixin_key\u3002&#034;&#034;&#034;<\/span><br \/>\n    raw <span class=\"token operator\">&#061;<\/span> img_key <span class=\"token operator\">&#043;<\/span> sub_key<br \/>\n    <span class=\"token keyword\">return<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span>raw<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span> <span class=\"token keyword\">for<\/span> i <span class=\"token keyword\">in<\/span> MIXIN_KEY_ENC_TAB <span class=\"token keyword\">if<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>raw<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">fetch_wbi_keys<\/span><span class=\"token punctuation\">(<\/span>client<span class=\"token punctuation\">:<\/span> httpx<span class=\"token punctuation\">.<\/span>Client<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">tuple<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u8c03\u7528 nav \u63a5\u53e3\u83b7\u53d6\u5f53\u524d\u6709\u6548\u7684 img_key \u4e0e sub_key\u3002&#034;&#034;&#034;<\/span><br \/>\n    resp <span class=\"token operator\">&#061;<\/span> client<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><br \/>\n        <span class=\"token string\">&#034;https:\/\/api.bilibili.com\/x\/web-interface\/nav&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        headers<span class=\"token operator\">&#061;<\/span>HEADERS<span class=\"token punctuation\">,<\/span><br \/>\n    <span class=\"token punctuation\">)<\/span><br \/>\n    resp<span class=\"token punctuation\">.<\/span>raise_for_status<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    data<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span> <span class=\"token operator\">&#061;<\/span> resp<span class=\"token punctuation\">.<\/span>json<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;data&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;wbi_img&#034;<\/span><span class=\"token punctuation\">]<\/span><br \/>\n    img_key <span class=\"token operator\">&#061;<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;img_url&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>rsplit<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\/&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;.&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><br \/>\n    sub_key <span class=\"token operator\">&#061;<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;sub_url&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>rsplit<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\/&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token operator\">&#8211;<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>split<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;.&#034;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><br \/>\n    <span class=\"token keyword\">return<\/span> img_key<span class=\"token punctuation\">,<\/span> sub_key<\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">sign_params<\/span><span class=\"token punctuation\">(<\/span><br \/>\n    params<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> Any<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span> img_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> sub_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span><br \/>\n<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> Any<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u4e3a\u8bf7\u6c42\u53c2\u6570\u9644\u52a0 wbi \u7b7e\u540d&#xff08;w_rid &#043; wts&#xff09;&#xff0c;\u6bcf\u6b21\u7ffb\u9875\u5747\u9700\u91cd\u65b0\u8c03\u7528\u3002&#034;&#034;&#034;<\/span><br \/>\n    mixin_key <span class=\"token operator\">&#061;<\/span> get_mixin_key<span class=\"token punctuation\">(<\/span>img_key<span class=\"token punctuation\">,<\/span> sub_key<span class=\"token punctuation\">)<\/span><br \/>\n    signed<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> Any<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">(<\/span>params<span class=\"token punctuation\">)<\/span><br \/>\n    signed<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;wts&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">(<\/span>time<span class=\"token punctuation\">.<\/span>time<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    sorted_keys <span class=\"token operator\">&#061;<\/span> <span class=\"token builtin\">sorted<\/span><span class=\"token punctuation\">(<\/span>signed<span class=\"token punctuation\">.<\/span>keys<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    raw <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&amp;&#034;<\/span><span class=\"token punctuation\">.<\/span>join<span class=\"token punctuation\">(<\/span><span class=\"token string-interpolation\"><span class=\"token string\">f&#034;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>k<span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>signed<span class=\"token punctuation\">[<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#034;<\/span><\/span> <span class=\"token keyword\">for<\/span> k <span class=\"token keyword\">in<\/span> sorted_keys<span class=\"token punctuation\">)<\/span><\/p>\n<p>    w_rid <span class=\"token operator\">&#061;<\/span> hashlib<span class=\"token punctuation\">.<\/span>md5<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>raw <span class=\"token operator\">&#043;<\/span> mixin_key<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>encode<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">.<\/span>hexdigest<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\n    signed<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;w_rid&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> w_rid<br \/>\n    <span class=\"token keyword\">return<\/span> signed<\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">build_client<\/span><span class=\"token punctuation\">(<\/span>proxy_url<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span> <span class=\"token operator\">|<\/span> <span class=\"token boolean\">None<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> httpx<span class=\"token punctuation\">.<\/span>Client<span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u6784\u9020 httpx \u5ba2\u6237\u7aef&#xff0c;\u53ef\u9009\u63a5\u5165\u4ee3\u7406\u96a7\u9053\u3002<\/p>\n<p>    Args:<br \/>\n        proxy_url: \u4ee3\u7406\u5730\u5740&#xff0c;\u5982 &#034;http:\/\/tunnel:password&#064;tun.16yun.cn:8000&#034;<br \/>\n    &#034;&#034;&#034;<\/span><br \/>\n    kwargs<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> Any<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;timeout&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">}<\/span><br \/>\n    <span class=\"token keyword\">if<\/span> proxy_url<span class=\"token punctuation\">:<\/span><br \/>\n        kwargs<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;proxy&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> proxy_url<br \/>\n    <span class=\"token keyword\">return<\/span> httpx<span class=\"token punctuation\">.<\/span>Client<span class=\"token punctuation\">(<\/span><span class=\"token operator\">**<\/span>kwargs<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">fetch_dynamics<\/span><span class=\"token punctuation\">(<\/span><br \/>\n    client<span class=\"token punctuation\">:<\/span> httpx<span class=\"token punctuation\">.<\/span>Client<span class=\"token punctuation\">,<\/span><br \/>\n    host_mid<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    offset<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    img_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    sub_key<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    max_pages<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    request_interval<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">float<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">1.5<\/span><span class=\"token punctuation\">,<\/span><br \/>\n    jitter<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">float<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token number\">0.5<\/span><span class=\"token punctuation\">,<\/span><br \/>\n<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token builtin\">list<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u5206\u9875\u91c7\u96c6\u6307\u5b9a UP \u4e3b\u7684\u5168\u90e8\u52a8\u6001\u3002<\/p>\n<p>    Args:<br \/>\n        client:         \u5df2\u914d\u7f6e\u4ee3\u7406\u7684 httpx \u5ba2\u6237\u7aef<br \/>\n        host_mid:       \u76ee\u6807 UP \u4e3b uid<br \/>\n        offset:         \u5206\u9875\u6e38\u6807&#xff0c;\u9996\u9875\u4f20\u7a7a\u5b57\u7b26\u4e32<br \/>\n        img_key:        nav \u63a5\u53e3\u8fd4\u56de\u7684 wbi img_key<br \/>\n        sub_key:        nav \u63a5\u53e3\u8fd4\u56de\u7684 wbi sub_key<br \/>\n        max_pages:      \u6700\u5927\u7ffb\u9875\u6570&#xff0c;\u515c\u5e95\u4fdd\u62a4<br \/>\n        request_interval: \u57fa\u7840\u7ffb\u9875\u95f4\u9694&#xff08;\u79d2&#xff09;<br \/>\n        jitter:         \u95f4\u9694\u968f\u673a\u6296\u52a8\u5e45\u5ea6&#xff08;\u79d2&#xff09;&#xff0c;\u9632\u6b62\u8bf7\u6c42\u5448\u73b0\u56fa\u5b9a\u5468\u671f<\/p>\n<p>    Returns:<br \/>\n        \u6240\u6709\u52a8\u6001\u9879\u5217\u8868<br \/>\n    &#034;&#034;&#034;<\/span><br \/>\n    all_items<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">list<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><\/p>\n<p>    <span class=\"token keyword\">for<\/span> page <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">range<\/span><span class=\"token punctuation\">(<\/span>max_pages<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n        params<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">str<\/span><span class=\"token punctuation\">,<\/span> Any<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">{<\/span><br \/>\n            <span class=\"token string\">&#034;host_mid&#034;<\/span><span class=\"token punctuation\">:<\/span> host_mid<span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;offset&#034;<\/span><span class=\"token punctuation\">:<\/span> offset<span class=\"token punctuation\">,<\/span><br \/>\n            <span class=\"token string\">&#034;timezone_offset&#034;<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token number\">480<\/span><span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token punctuation\">}<\/span><br \/>\n        signed <span class=\"token operator\">&#061;<\/span> sign_params<span class=\"token punctuation\">(<\/span>params<span class=\"token punctuation\">,<\/span> img_key<span class=\"token punctuation\">,<\/span> sub_key<span class=\"token punctuation\">)<\/span><\/p>\n<p>        resp <span class=\"token operator\">&#061;<\/span> client<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><br \/>\n            <span class=\"token string\">&#034;https:\/\/api.bilibili.com\/x\/polymer\/web-dynamics\/v1\/feed\/space&#034;<\/span><span class=\"token punctuation\">,<\/span><br \/>\n            headers<span class=\"token operator\">&#061;<\/span>HEADERS<span class=\"token punctuation\">,<\/span><br \/>\n            params<span class=\"token operator\">&#061;<\/span>signed<span class=\"token punctuation\">,<\/span><br \/>\n        <span class=\"token punctuation\">)<\/span><br \/>\n        data<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">dict<\/span> <span class=\"token operator\">&#061;<\/span> resp<span class=\"token punctuation\">.<\/span>json<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;code&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">!&#061;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><br \/>\n                <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;[ERROR] \u7b2c <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>page <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> \u9875\u5931\u8d25: &#034;<\/span><\/span><br \/>\n                <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;code&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#039;code&#039;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">, msg&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>data<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;message&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#034;<\/span><\/span><br \/>\n            <span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><\/p>\n<p>        items<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">list<\/span><span class=\"token punctuation\">[<\/span><span class=\"token builtin\">dict<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;data&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;items&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">or<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><br \/>\n        <span class=\"token keyword\">if<\/span> <span class=\"token keyword\">not<\/span> items<span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><\/p>\n<p>        all_items<span class=\"token punctuation\">.<\/span>extend<span class=\"token punctuation\">(<\/span>items<span class=\"token punctuation\">)<\/span><\/p>\n<p>        has_more<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">bool<\/span> <span class=\"token operator\">&#061;<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;data&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;has_more&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token boolean\">False<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        offset <span class=\"token operator\">&#061;<\/span> data<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;data&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;offset&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><br \/>\n            <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;  [\u9875 <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>page <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">] \u7d2f\u8ba1 <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span><span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>all_items<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> \u6761, &#034;<\/span><\/span><br \/>\n            <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;has_more&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>has_more<span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">, next_offset&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>offset<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token format-spec\">30]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#8230;&#034;<\/span><\/span><br \/>\n        <span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token keyword\">if<\/span> <span class=\"token keyword\">not<\/span> has_more <span class=\"token keyword\">or<\/span> <span class=\"token keyword\">not<\/span> offset<span class=\"token punctuation\">:<\/span><br \/>\n            <span class=\"token keyword\">break<\/span><\/p>\n<p>        <span class=\"token comment\"># \u7ffb\u9875\u95f4\u9694 &#043; \u968f\u673a\u6296\u52a8&#xff0c;\u907f\u514d\u89e6\u53d1\u9891\u7387\u98ce\u63a7<\/span><br \/>\n        time<span class=\"token punctuation\">.<\/span>sleep<span class=\"token punctuation\">(<\/span>request_interval <span class=\"token operator\">&#043;<\/span> random<span class=\"token punctuation\">.<\/span>uniform<span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> jitter<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>    <span class=\"token keyword\">return<\/span> all_items<\/p>\n<p><span class=\"token keyword\">def<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span>host_mid<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">int<\/span><span class=\"token punctuation\">,<\/span> proxy_url<span class=\"token punctuation\">:<\/span> <span class=\"token builtin\">str<\/span> <span class=\"token operator\">|<\/span> <span class=\"token boolean\">None<\/span> <span class=\"token operator\">&#061;<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&#8211;<\/span><span class=\"token operator\">&gt;<\/span> <span class=\"token boolean\">None<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token triple-quoted-string string\">&#034;&#034;&#034;\u4e3b\u6d41\u7a0b&#xff1a;\u83b7\u53d6 wbi key \u2192 \u5206\u9875\u91c7\u96c6 \u2192 \u8f93\u51fa\u7ed3\u679c\u3002<\/p>\n<p>    Args:<br \/>\n        host_mid:  UP \u4e3b uid<br \/>\n        proxy_url: \u53ef\u9009\u4ee3\u7406\u96a7\u9053\u5730\u5740<br \/>\n    &#034;&#034;&#034;<\/span><br \/>\n    <span class=\"token keyword\">with<\/span> build_client<span class=\"token punctuation\">(<\/span>proxy_url<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">as<\/span> client<span class=\"token punctuation\">:<\/span><br \/>\n        <span class=\"token comment\"># Step 1: \u83b7\u53d6 wbi \u7b7e\u540d\u6240\u9700 key<\/span><br \/>\n        <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u6b63\u5728\u83b7\u53d6 wbi key&#8230;&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n        img_key<span class=\"token punctuation\">,<\/span> sub_key <span class=\"token operator\">&#061;<\/span> fetch_wbi_keys<span class=\"token punctuation\">(<\/span>client<span class=\"token punctuation\">)<\/span><br \/>\n        <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string-interpolation\"><span class=\"token string\">f&#034;  img_key&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>img_key<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token format-spec\">8]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#8230;, sub_key&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>sub_key<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token format-spec\">8]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#8230;&#034;<\/span><\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token comment\"># Step 2: \u5206\u9875\u91c7\u96c6<\/span><br \/>\n        <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string-interpolation\"><span class=\"token string\">f&#034;\u5f00\u59cb\u91c7\u96c6 UP \u4e3b <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>host_mid<span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> \u7684\u52a8\u6001&#8230;&#034;<\/span><\/span><span class=\"token punctuation\">)<\/span><br \/>\n        items <span class=\"token operator\">&#061;<\/span> fetch_dynamics<span class=\"token punctuation\">(<\/span>client<span class=\"token punctuation\">,<\/span> host_mid<span class=\"token punctuation\">,<\/span> img_key<span class=\"token operator\">&#061;<\/span>img_key<span class=\"token punctuation\">,<\/span> sub_key<span class=\"token operator\">&#061;<\/span>sub_key<span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string-interpolation\"><span class=\"token string\">f&#034;\\\\n\u91c7\u96c6\u5b8c\u6210&#xff0c;\u5171\u83b7\u53d6 <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span><span class=\"token builtin\">len<\/span><span class=\"token punctuation\">(<\/span>items<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> \u6761\u52a8\u6001&#034;<\/span><\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>        <span class=\"token comment\"># \u9884\u89c8\u524d 3 \u6761<\/span><br \/>\n        <span class=\"token keyword\">for<\/span> i<span class=\"token punctuation\">,<\/span> item <span class=\"token keyword\">in<\/span> <span class=\"token builtin\">enumerate<\/span><span class=\"token punctuation\">(<\/span>items<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span><br \/>\n            module <span class=\"token operator\">&#061;<\/span> item<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;modules&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            author <span class=\"token operator\">&#061;<\/span> module<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;module_author&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            dynamic <span class=\"token operator\">&#061;<\/span> module<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;module_dynamic&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n            title <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">(<\/span><br \/>\n                dynamic<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;major&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;archive&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token keyword\">or<\/span> dynamic<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;major&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;desc&#034;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#034;&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n                <span class=\"token keyword\">or<\/span> <span class=\"token string\">&#034;(\u56fe\u6587\u52a8\u6001)&#034;<\/span><br \/>\n            <span class=\"token punctuation\">)<\/span><br \/>\n            <span class=\"token keyword\">print<\/span><span class=\"token punctuation\">(<\/span><br \/>\n                <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;\\\\n  [<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>i <span class=\"token operator\">&#043;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">] <\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>author<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;name&#039;<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">&#039;?&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> &#034;<\/span><\/span><br \/>\n                <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;\u7c7b\u578b&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>item<span class=\"token punctuation\">.<\/span>get<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#039;type&#039;<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\"> &#034;<\/span><\/span><br \/>\n                <span class=\"token string-interpolation\"><span class=\"token string\">f&#034;\u5185\u5bb9&#061;<\/span><span class=\"token interpolation\"><span class=\"token punctuation\">{<\/span>title<span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">:<\/span><span class=\"token format-spec\">50]<\/span><span class=\"token punctuation\">}<\/span><\/span><span class=\"token string\">&#034;<\/span><\/span><br \/>\n            <span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token keyword\">if<\/span> __name__ <span class=\"token operator\">&#061;&#061;<\/span> <span class=\"token string\">&#034;__main__&#034;<\/span><span class=\"token punctuation\">:<\/span><br \/>\n    <span class=\"token comment\"># \u66ff\u6362\u4e3a\u76ee\u6807 UP \u4e3b uid<\/span><br \/>\n    main<span class=\"token punctuation\">(<\/span>host_mid<span class=\"token operator\">&#061;<\/span><span class=\"token number\">123456<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<h3>\u4e94\u3001\u8fd0\u884c\u6548\u679c<\/h3>\n<p>\u6267\u884c main(host_mid&#061;\u4f60\u7684\u76ee\u6807uid)&#xff0c;\u63a7\u5236\u53f0\u8f93\u51fa\u5982\u4e0b&#xff1a;<\/p>\n<p>\u6b63\u5728\u83b7\u53d6 wbi key&#8230;<br \/>\n  img_key&#061;7cd08494&#8230;, sub_key&#061;4932caff&#8230;<br \/>\n\u5f00\u59cb\u91c7\u96c6 UP \u4e3b 123456 \u7684\u52a8\u6001&#8230;<br \/>\n  [\u9875 1] \u7d2f\u8ba1 20 \u6761, has_more&#061;True, next_offset&#061;1723012345_98765&#8230;<br \/>\n  [\u9875 2] \u7d2f\u8ba1 40 \u6761, has_more&#061;True, next_offset&#061;1723009876_12345&#8230;<br \/>\n  [\u9875 3] \u7d2f\u8ba1 60 \u6761, has_more&#061;True, next_offset&#061;1723005432_67890&#8230;<br \/>\n  [\u9875 4] \u7d2f\u8ba1 80 \u6761, has_more&#061;False, next_offset&#061;&#8230;<\/p>\n<p>\u91c7\u96c6\u5b8c\u6210&#xff0c;\u5171\u83b7\u53d6 80 \u6761\u52a8\u6001<\/p>\n<p>\u4ece\u9996\u9875\u5230\u5c3e\u9875&#xff0c;\u5168\u7a0b\u65e0\u7b7e\u540d\u963b\u65ad\u3002<\/p>\n<h3>\u516d\u3001\u4e3a\u4ec0\u4e48\u7b2c\u4e8c\u9875\u624d\u662f\u771f\u6b63\u7684\u4e3b\u6218\u573a<\/h3>\n<p>\u56de\u770b\u4e0a\u9762\u7684\u5b9e\u73b0&#xff0c;\u6838\u5fc3\u903b\u8f91\u53ea\u6709\u4e09\u6761\u7ebf&#xff1a;<\/p>\n<li>wbi key \u662f\u65f6\u6548\u6027\u53d8\u91cf\u2014\u2014\u6bcf\u6b21\u542f\u52a8\u4ece nav \u63a5\u53e3\u62c9\u53d6&#xff0c;\u867d\u7136\u662f 24 \u5c0f\u65f6\u7ea7\u6709\u6548\u671f&#xff0c;\u4f46\u5176\u5237\u65b0\u65f6\u673a\u4e0d\u53d7\u4f60\u63a7\u5236\u3002\u786c\u7f16\u7801\u5230\u4ee3\u7801\u91cc&#xff0c;\u7b2c\u4e8c\u5929\u5fc5 403\u3002<\/li>\n<li>\u7b7e\u540d\u4e0e\u53c2\u6570\u662f\u4e00\u4e00\u7ed1\u5b9a\u2014\u2014offset \u4e00\u65e6\u53d8\u5316&#xff0c;\u7b7e\u540d\u5b57\u7b26\u4e32\u968f\u4e4b\u6539\u53d8&#xff0c;w_rid \u5fc5\u987b\u91cd\u65b0\u8ba1\u7b97\u3002\u5927\u91cf\u65b0\u624b\u9519\u8bef\u5730\u5c06\u7b2c\u4e00\u9875\u7684 w_rid \u76f4\u63a5\u5957\u7528\u5230\u7b2c\u4e8c\u9875\u8bf7\u6c42\u4e2d&#xff0c;\u5f97\u5230\u7684\u81ea\u7136\u662f\u98ce\u63a7\u62e6\u622a\u3002<\/li>\n<li>offset \u662f\u9ed1\u76d2\u6e38\u6807\u2014\u2014\u5b83\u4e0d\u662f\u7b80\u5355\u7684\u9875\u7801\u6216\u81ea\u589e\u5e8f\u53f7&#xff0c;\u800c\u662f B \u7ad9\u670d\u52a1\u7aef\u751f\u6210\u7684\u5185\u90e8\u6e38\u6807\u5b57\u7b26\u4e32&#xff0c;\u4f60\u53ea\u80fd\u539f\u5c01\u4e0d\u52a8\u5730\u4ece\u4e0a\u4e00\u9875\u54cd\u5e94\u4e2d\u53d6\u7528&#xff0c;\u4efb\u4f55\u81ea\u884c\u6784\u9020\u7684 offset \u503c\u90fd\u65e0\u6548\u3002<\/li>\n<p>\u4e00\u53e5\u8bdd\u70b9\u775b&#xff1a;\u7b2c\u4e00\u9875\u53ea\u662f\u666e\u901a\u7684 HTTP \u8bf7\u6c42&#xff0c;\u7b2c\u4e8c\u9875\u624d\u771f\u6b63\u89e6\u53d1\u4e86\u7b7e\u540d\u6821\u9a8c\u7684\u5168\u94fe\u8def\u3002<\/p>\n<h3>\u4e03\u3001\u907f\u5751\u901f\u67e5\u8868<\/h3>\n<table>\n<tr>\u73b0\u8c61\u6839\u56e0\u89e3\u51b3\u65b9\u6848<\/tr>\n<tbody>\n<tr>\n<td>code&#061;-101<\/td>\n<td>Cookie \u672a\u521d\u59cb\u5316<\/td>\n<td>\u9996\u6b21\u8bf7\u6c42\u524d\u5148 GET B \u7ad9\u9996\u9875&#xff0c;\u8ba9\u670d\u52a1\u7aef\u4e0b\u53d1\u57fa\u7840 cookies<\/td>\n<\/tr>\n<tr>\n<td>code&#061;-352<\/td>\n<td>wbi key \u8fc7\u671f\u6216\u9891\u7387\u8d85\u9650<\/td>\n<td>\u91cd\u65b0\u8c03\u7528 nav \u63a5\u53e3\u5237\u65b0 key&#xff1b;\u964d\u4f4e\u8bf7\u6c42\u9891\u7387<\/td>\n<\/tr>\n<tr>\n<td>code&#061;-403<\/td>\n<td>\u7b7e\u540d\u6821\u9a8c\u5931\u8d25\u6216 IP \u98ce\u63a7<\/td>\n<td>\u68c0\u67e5\u53c2\u6570\u6392\u5e8f\u662f\u5426\u4e3a\u5b57\u5178\u5e8f&#xff1b;\u66f4\u6362\u51fa\u53e3 IP<\/td>\n<\/tr>\n<tr>\n<td>\u7b7e\u540d\u59cb\u7ec8\u4e0d\u901a\u8fc7<\/td>\n<td>\u6df7\u6392\u8868\u7248\u672c\u8fc7\u65f6<\/td>\n<td>\u5f53\u524d\u6df7\u6392\u8868\u4e0a\u7ebf\u591a\u5e74\u672a\u53d8&#xff0c;\u82e5\u5931\u6548\u9700\u4ece\u6700\u65b0 index.js \u91cd\u65b0\u63d0\u53d6<\/td>\n<\/tr>\n<tr>\n<td>\u7a7a\u54cd\u5e94 \/ \u8fde\u63a5\u8d85\u65f6<\/td>\n<td>\u51fa\u53e3 IP \u88ab\u4e34\u65f6\u7194\u65ad<\/td>\n<td>\u5207\u6362\u4ee3\u7406\u8282\u70b9\u5e76\u9002\u5f53\u5ef6\u957f\u8bf7\u6c42\u95f4\u9694<\/td>\n<\/tr>\n<tr>\n<td>nav \u4e0e\u4e1a\u52a1\u63a5\u53e3 key \u4e0d\u4e00\u81f4<\/td>\n<td>\u8de8 session \u4f7f\u7528<\/td>\n<td>\u786e\u4fdd\u6240\u6709\u8bf7\u6c42\u5728\u540c\u4e00 httpx.Client session \u4e2d\u5b8c\u6210<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>\u516b\u3001\u89c4\u6a21\u5316\u90e8\u7f72&#xff1a;\u5bf9\u63a5\u4f01\u4e1a\u7ea7\u4ee3\u7406\u670d\u52a1<\/h3>\n<p>\u5355\u673a\u5355 IP \u8dd1\u901a\u662f\u7b2c\u4e00\u6b65&#xff0c;\u771f\u6b63\u8fdb\u5165\u6301\u7eed\u91c7\u96c6\u9636\u6bb5\u65f6&#xff0c;\u6709\u4e09\u4e2a\u95ee\u9898\u4f1a\u8fc5\u901f\u66b4\u9732&#xff1a;<\/p>\n<ul>\n<li>\u51fa\u53e3 IP \u4fe1\u8a89\u52a3\u5316&#xff1a;\u540c\u4e00 IP \u9ad8\u9891\u8bbf\u95ee\u540c\u4e00\u63a5\u53e3&#xff0c;B \u7ad9\u98ce\u63a7\u7cfb\u7edf\u4f1a\u5728\u6570\u5206\u949f\u5185\u89e6\u53d1\u6d41\u91cf\u6574\u5f62\u751a\u81f3\u4e34\u65f6\u5c01\u7981\u3002<\/li>\n<li>\u5e76\u53d1\u74f6\u9888&#xff1a;\u5355\u7ebf\u7a0b\u987a\u5e8f\u7ffb\u9875\u5728\u9762\u5bf9\u91cf\u5927 UP \u4e3b&#xff08;\u6570\u767e\u9875\u52a8\u6001&#xff09;\u65f6&#xff0c;\u91c7\u96c6\u5468\u671f\u4ee5\u5c0f\u65f6\u8ba1\u3002<\/li>\n<li>\u5730\u57df\u6027\u5185\u5bb9\u5dee\u5f02&#xff1a;\u90e8\u5206\u63a5\u53e3\u7684\u8fd4\u56de\u7ed3\u679c\u4e0e\u8bf7\u6c42\u6765\u6e90 IP \u7684\u5f52\u5c5e\u5730\u76f8\u5173&#xff0c;\u5355\u8282\u70b9\u65e0\u6cd5\u8986\u76d6\u3002<\/li>\n<\/ul>\n<p>\u6b64\u65f6\u9700\u8981\u5f15\u5165\u4f01\u4e1a\u7ea7\u4ee3\u7406 IP \u670d\u52a1\u6765\u6784\u5efa\u9ad8\u53ef\u7528\u91c7\u96c6\u94fe\u8def\u3002<\/p>\n<h4>\u4ebf\u725b\u4e91\u4ee3\u7406\u96a7\u9053\u65b9\u6848<\/h4>\n<p>\u4ebf\u725b\u4e91\u662f\u56fd\u5185\u4e3b\u6d41\u7684\u4ee3\u7406\u670d\u52a1\u63d0\u4f9b\u5546&#xff0c;\u65d7\u4e0b \u722c\u866b\u4ee3\u7406&#xff08;\u96a7\u9053\u4ee3\u7406&#xff09; \u4ea7\u54c1\u7ebf\u5728 B \u7ad9\u7c7b\u573a\u666f\u4e2d\u8868\u73b0\u51fa\u8272\u3002\u6839\u636e 2026 \u5e74\u7b2c\u4e09\u65b9\u5b9e\u6d4b\u6570\u636e&#xff1a;<\/p>\n<table>\n<tr>\u6307\u6807\u4ebf\u725b\u4e91\u96a7\u9053\u4ee3\u7406\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>\u8fde\u901a\u7387<\/td>\n<td>99.1%<\/td>\n<td>BGP \u4e13\u7ebf&#xff0c;\u5ef6\u8fdf &lt;80ms<\/td>\n<\/tr>\n<tr>\n<td>\u76ee\u6807\u7ad9\u62e6\u622a\u7387<\/td>\n<td>0.8%<\/td>\n<td>\u6beb\u79d2\u7ea7 IP \u81ea\u52a8\u8f6e\u6362<\/td>\n<\/tr>\n<tr>\n<td>\u5e76\u53d1\u6210\u529f\u7387<\/td>\n<td>98.5%&#xff08;10 \u8def&#xff09;<\/td>\n<td>\u652f\u6301\u9ad8\u5e76\u53d1\u91c7\u96c6<\/td>\n<\/tr>\n<tr>\n<td>\u9a8c\u8bc1\u7801\u89e6\u53d1\u7387<\/td>\n<td>1.5%<\/td>\n<td>\u8fdc\u4f4e\u4e8e\u76f4\u8fde\u65b9\u6848<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4ebf\u725b\u4e91\u7684\u96a7\u9053\u4ee3\u7406\u91c7\u7528\u56fa\u5b9a\u5165\u53e3\u3001\u4e91\u7aef\u8c03\u5ea6\u3001\u52a8\u6001\u51fa\u53e3\u7684\u67b6\u6784&#xff1a;\u4f60\u53ea\u9700\u5728\u4ee3\u7801\u4e2d\u914d\u7f6e\u4e00\u4e2a\u56fa\u5b9a\u7684\u4ee3\u7406\u5730\u5740&#xff0c;\u540e\u7aef\u4f1a\u81ea\u52a8\u4ece\u6570\u5341\u4e07\u7ea7 IP \u6c60\u4e2d\u5207\u6362\u51fa\u53e3&#xff0c;\u6bcf\u6761\u8bf7\u6c42\u90fd\u53ef\u80fd\u8d70\u4e0d\u540c\u7684\u516c\u7f51 IP\u3002\u5bf9\u4e8e\u9700\u8981\u591a\u7ebf\u7a0b\u5e76\u53d1\u6216\u957f\u671f\u7a33\u5b9a\u8fd0\u884c\u7684\u4efb\u52a1&#xff0c;\u8fd9\u79cd\u6beb\u79d2\u7ea7 IP \u8f6e\u6362\u673a\u5236\u80fd\u6781\u5927\u964d\u4f4e\u88ab\u76ee\u6807\u7ad9\u98ce\u63a7\u7cfb\u7edf\u6807\u8bb0\u7684\u6982\u7387\u3002<\/p>\n<h4>\u4ee3\u7801\u63a5\u5165<\/h4>\n<p>\u5bf9\u63a5\u4ebf\u725b\u4e91\u96a7\u9053\u4ee3\u7406&#xff0c;\u53ea\u9700\u5728 build_client \u4e2d\u4f20\u5165\u4ee3\u7406\u5730\u5740&#xff1a;<\/p>\n<p><span class=\"token comment\"># \u63a5\u5165\u4ebf\u725b\u4e91\u96a7\u9053\u4ee3\u7406<\/span><br \/>\nPROXY_URL <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;http:\/\/tunnel:password&#064;tun.16yun.cn:8000&#034;<\/span><\/p>\n<p>main<span class=\"token punctuation\">(<\/span>host_mid<span class=\"token operator\">&#061;<\/span><span class=\"token number\">123456<\/span><span class=\"token punctuation\">,<\/span> proxy_url<span class=\"token operator\">&#061;<\/span>PROXY_URL<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u65e0\u9700\u6539\u52a8\u4efb\u4f55\u4e1a\u52a1\u903b\u8f91\u2014\u2014\u6240\u6709 HTTP \u8bf7\u6c42\u81ea\u52a8\u7ecf\u7531\u4ee3\u7406\u96a7\u9053\u8f6c\u53d1&#xff0c;\u51fa\u53e3 IP \u5728\u4e91\u7aef\u900f\u660e\u8f6e\u6362\u3002<\/p>\n<h4>\u67b6\u6784\u5347\u7ea7\u65b9\u5411<\/h4>\n<ul>\n<li>\u5f02\u6b65\u5e76\u53d1&#xff1a;\u5c06 httpx.Client \u66ff\u6362\u4e3a httpx.AsyncClient&#xff0c;\u914d\u5408 asyncio.gather \u540c\u65f6\u5bf9\u591a\u4e2a UP \u4e3b\u53d1\u8d77\u91c7\u96c6&#xff0c;\u6548\u7387\u500d\u7ea7\u63d0\u5347\u3002\u4ebf\u725b\u4e91 API \u4ee3\u7406\u652f\u6301\u6bcf\u8bf7\u6c42\u72ec\u7acb\u63d0\u53d6 IP&#xff0c;\u4e0e\u5f02\u6b65\u6a21\u578b\u5929\u7136\u5339\u914d\u3002<\/li>\n<li>\u589e\u91cf\u91c7\u96c6&#xff1a;\u6301\u4e45\u5316\u6bcf\u6b21\u91c7\u96c6\u7684 (host_mid, offset) \u8fdb\u5ea6\u5bf9&#xff0c;\u4e0b\u6b21\u542f\u52a8\u4ece\u4e0a\u6b21\u4e2d\u65ad\u5904\u7eed\u91c7&#xff0c;\u907f\u514d\u5168\u91cf\u91cd\u62c9\u3002<\/li>\n<li>\u8bf7\u6c42\u6307\u7eb9\u7ba1\u7406&#xff1a;\u914d\u5408 Cookie \u6c60\u4e0e User-Agent \u8f6e\u6362&#xff0c;\u8fdb\u4e00\u6b65\u964d\u4f4e\u8bf7\u6c42\u6307\u7eb9\u4e00\u81f4\u6027\u5e26\u6765\u7684\u98ce\u63a7\u98ce\u9669\u3002<\/li>\n<\/ul>\n<h3>\u4e5d\u3001\u7ed3\u5c3e<\/h3>\n<p>B \u7ad9\u7684 wbi \u7b7e\u540d\u8fdc\u8c08\u4e0d\u4e0a\u6df1\u5965\u7684\u5bc6\u7801\u5b66&#xff0c;\u5176\u672c\u8d28\u5c31\u662f\u300c\u7ed9\u53c2\u6570\u4e32\u52a0\u4e2a\u76d0&#xff0c;\u7136\u540e MD5 \u4e00\u4e0b\u300d\u3002\u771f\u6b63\u7684\u95e8\u69db\u5728\u4e8e&#xff1a;\u4f60\u8981\u77e5\u9053\u76d0\u4ece\u54ea\u53d6\u3001\u53d6\u5230\u4e4b\u540e\u600e\u4e48\u62fc\u3002<\/p>\n<p>\u7b2c\u4e00\u9875\u8ba9\u4f60\u89c9\u5f97\u300cB \u7ad9\u722c\u866b\u4e5f\u592a\u53cb\u597d\u4e86\u5427\u300d&#xff0c;\u7b2c\u4e8c\u9875\u518d\u7ed3\u7ed3\u5b9e\u5b9e\u5730\u62bd\u4f60\u4e00\u97ad\u2014\u2014\u8fd9\u5927\u6982\u662f\u6700\u7cbe\u51c6\u7684\u300c\u65b0\u624b\u5f15\u5bfc\u300d\u4e86\u3002<\/p>\n<p>\u5b8c\u6574\u5b9e\u73b0\u4e0d\u5230 120 \u884c&#xff0c;\u8986\u76d6 key \u83b7\u53d6\u3001\u7b7e\u540d\u751f\u6210\u3001\u5206\u9875\u7ffb\u9875\u3001\u4ee3\u7406\u5bf9\u63a5\u4e0e\u9519\u8bef\u5904\u7406\u7684\u5168\u94fe\u8def\u3002\u586b\u5165\u76ee\u6807 uid&#xff0c;\u914d\u7f6e\u4ee3\u7406\u96a7\u9053&#xff0c;\u5373\u53ef\u6295\u5165\u751f\u4ea7\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u95ee\u9898\u7684\u672c\u8d28<br \/>\n\u5982\u679c\u4f60\u52a8\u624b\u5199\u8fc7 B \u7ad9\u722c\u866b&#xff0c;\u5927\u6982\u7387\u649e\u4e0a\u8fc7\u8fd9\u4e00\u5e55&#xff1a;\u7b2c\u4e00\u9875\u7684\u52a8\u6001\u6570\u636e\u987a\u5229\u5230\u624b&#xff0c;\u7ffb\u5230\u7b2c\u4e8c\u9875\u63a5\u53e3\u9a6c\u4e0a\u7529\u56de {\\&#8221;code\\&#8221;: -352, \\&#8221;message\\&#8221;: \\&#8221;\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41&#xff0c;\u8bf7\u7a0d\u540e\u518d\u8bd5\\&#8221;} \u6216\u5e72\u8106 {\\&#8221;code\\&#8221;: -403}\u3002\u6362 User-Agent\u3001\u52a0 time.sleep\u3001\u751a\u81f3\u624b\u52a8\u4ece\u6d4f\u89c8\u5668\u62a0 Cookie\u2014\u2014\u7edf\u7edf\u4e0d\u7ba1\u7528\u3002<br \/>\n\u6839\u6e90\u5728\u4e8e B \u7ad9\u5f15\u5165\u7684 wbi \u7b7e\u540d\u673a\u5236\u3002\u6240\u6709\u542b\u5206\u9875\u53c2\u6570\u7684 Web API&amp;#xf<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[81,190,677],"topic":[],"class_list":["post-92581","post","type-post","status-publish","format-standard","hentry","category-server","tag-python","tag-190","tag-677"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/92581.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u4e00\u3001\u95ee\u9898\u7684\u672c\u8d28 \u5982\u679c\u4f60\u52a8\u624b\u5199\u8fc7 B \u7ad9\u722c\u866b&#xff0c;\u5927\u6982\u7387\u649e\u4e0a\u8fc7\u8fd9\u4e00\u5e55&#xff1a;\u7b2c\u4e00\u9875\u7684\u52a8\u6001\u6570\u636e\u987a\u5229\u5230\u624b&#xff0c;\u7ffb\u5230\u7b2c\u4e8c\u9875\u63a5\u53e3\u9a6c\u4e0a\u7529\u56de {&quot;code&quot;: -352, &quot;message&quot;: &quot;\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41&#xff0c;\u8bf7\u7a0d\u540e\u518d\u8bd5&quot;} \u6216\u5e72\u8106 {&quot;code&quot;: -403}\u3002\u6362 User-Agent\u3001\u52a0 time.sleep\u3001\u751a\u81f3\u624b\u52a8\u4ece\u6d4f\u89c8\u5668\u62a0 Cookie\u2014\u2014\u7edf\u7edf\u4e0d\u7ba1\u7528\u3002 \u6839\u6e90\u5728\u4e8e B \u7ad9\u5f15\u5165\u7684 wbi \u7b7e\u540d\u673a\u5236\u3002\u6240\u6709\u542b\u5206\u9875\u53c2\u6570\u7684 Web API&amp;#xf\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/92581.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-10T09:01:16+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/92581.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/92581.html\",\"name\":\"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-08-10T09:01:16+00:00\",\"dateModified\":\"2026-08-10T09:01:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/92581.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/92581.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/92581.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/92581.html","og_locale":"zh_CN","og_type":"article","og_title":"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u4e00\u3001\u95ee\u9898\u7684\u672c\u8d28 \u5982\u679c\u4f60\u52a8\u624b\u5199\u8fc7 B \u7ad9\u722c\u866b&#xff0c;\u5927\u6982\u7387\u649e\u4e0a\u8fc7\u8fd9\u4e00\u5e55&#xff1a;\u7b2c\u4e00\u9875\u7684\u52a8\u6001\u6570\u636e\u987a\u5229\u5230\u624b&#xff0c;\u7ffb\u5230\u7b2c\u4e8c\u9875\u63a5\u53e3\u9a6c\u4e0a\u7529\u56de {\"code\": -352, \"message\": \"\u8bf7\u6c42\u8fc7\u4e8e\u9891\u7e41&#xff0c;\u8bf7\u7a0d\u540e\u518d\u8bd5\"} \u6216\u5e72\u8106 {\"code\": -403}\u3002\u6362 User-Agent\u3001\u52a0 time.sleep\u3001\u751a\u81f3\u624b\u52a8\u4ece\u6d4f\u89c8\u5668\u62a0 Cookie\u2014\u2014\u7edf\u7edf\u4e0d\u7ba1\u7528\u3002 \u6839\u6e90\u5728\u4e8e B \u7ad9\u5f15\u5165\u7684 wbi \u7b7e\u540d\u673a\u5236\u3002\u6240\u6709\u542b\u5206\u9875\u53c2\u6570\u7684 Web API&amp;#xf","og_url":"https:\/\/www.wsisp.com\/helps\/92581.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-08-10T09:01:16+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"6 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/92581.html","url":"https:\/\/www.wsisp.com\/helps\/92581.html","name":"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-08-10T09:01:16+00:00","dateModified":"2026-08-10T09:01:16+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/92581.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/92581.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/92581.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"B \u7ad9 UP \u4e3b\u52a8\u6001\u722c\u53d6\u5168\u6d41\u7a0b\uff1a\u4ece\u9996\u9875\u5230\u7ffb\u9875\u7684\u5b8c\u6574\u94fe\u8def"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/92581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=92581"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/92581\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=92581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=92581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=92581"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=92581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}