Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - fireattack/weiboPicDownloader: Download weibo images without logging-in · GitHub
Skip to content

Latest commit

History

123 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

weiboPicDownloader (fork)

中文 README

Weibo media batch downloader

Forked from https://github.com/nondanee/weiboPicDownloader

Major improvements:

  • Now can download posts with more than 9 pictures.
  • Now can download HD videos.
  • Cleanup text from the Weibo text content when used in name template.
  • Refactored as a module for easier incorporating into other Python scripts/projects. It now returns a list of dict to show some stats from the download session too.
  • Various bug fixes.

Breaking changes:

  • Dropped Python 2 support (only tested with 3.8, but should work with some earlier versions too)
  • -b (boundary) now is NON-inclusive on the left-side (earlier date). This is done to make it easier to update (so you can use -b last_checked_bid: to only download new posts without overlapping). -b with a specific mid/bid (instead of a range) would still download (always and only) that specific single post.

Aknowledgements

for more info about Weibo's APIs, check original repo's wiki

Dependencies

$ pip install requests
$ pip install colorama # only windows version under 10.0.14393 required

Usage

$ python .\weiboPicDownloader.py -h
usage: weiboPicDownloader [-h] (-u user [user ...] | -f file [file ...])
[-d directory] [-s size] [-r retry] [-i interval]
[-c cookie] [-b boundary] [-n name] [-v] [-o]
optional arguments:
-h, --help show this help message and exit
-u user [user ...] specify nickname or id of weibo users
-f file [file ...] import list of users from files
-d directory set picture saving path
-s size set size of thread pool
-r retry set maximum number of retries
-i interval set interval for feed requests
-c cookie set cookie if needed
-b boundary focus on weibos in the id range
-n name customize naming format
-v download videos together
-o overwrite existing files

Required argument (choose one)

  • -u user ... users (nickname or id)
  • -f file ... user list files (nickname or id, separated by linefeed in the file)

Optional arguments

  • -d directory media saving path (default value: ./weiboPic)
  • -s size thread pool size (default value: 20)
  • -r retry max retries (default value: 2)
  • -i interval request interval (default value: 1, unit: second)
  • -c cookie login credential (only need the value of a certain key named SUB)
  • -b boundary mid/bid/date range of weibos (format: id:id between, :id before, id: after, id certain, : all). Use @%Y%m%d (like @20220520) for date; otherwise integers would be considered as mid.
  • -n name naming template (identifier: url, index, type, mid, bid, date, text, name, uid, like "f-Strings" syntax)
  • -v download miaopai videos at the same time
  • -o overwrite existing files (skipping if exists for default)

How to get the value of SUB from browser (Chrome for example)

  1. Go to https://m.weibo.cn and log in
  2. Inspect > Application > Cookies > https://m.weibo.cn
  3. Double click the SUB line and copy its value
  4. Paste it into terminal and run like -c <value>

About

Download weibo images without logging-in

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages