<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=Blog%3A%E6%8A%93%E5%8F%96QQ%E7%A9%BA%E9%97%B4%E7%9A%AE%E8%82%A4%E5%9B%BE%E7%89%87</id>
	<title>Blog:抓取QQ空间皮肤图片 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=Blog%3A%E6%8A%93%E5%8F%96QQ%E7%A9%BA%E9%97%B4%E7%9A%AE%E8%82%A4%E5%9B%BE%E7%89%87"/>
	<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=Blog:%E6%8A%93%E5%8F%96QQ%E7%A9%BA%E9%97%B4%E7%9A%AE%E8%82%A4%E5%9B%BE%E7%89%87&amp;action=history"/>
	<updated>2026-06-02T19:45:21Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=Blog:%E6%8A%93%E5%8F%96QQ%E7%A9%BA%E9%97%B4%E7%9A%AE%E8%82%A4%E5%9B%BE%E7%89%87&amp;diff=2461&amp;oldid=prev</id>
		<title>imported&gt;Riguz：​最近把博客重新整理了一下，博文设置featured image果然看起来现代不少，但是要去哪找这么多合适的图片呢？当然PS是一个不错的选择，但是费时费力。看到QQ空间的皮肤倒是做的不错，直接拿来用吧，反正不违法。于是想用爬虫抓取。</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=Blog:%E6%8A%93%E5%8F%96QQ%E7%A9%BA%E9%97%B4%E7%9A%AE%E8%82%A4%E5%9B%BE%E7%89%87&amp;diff=2461&amp;oldid=prev"/>
		<updated>2017-01-11T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;最近把博客重新整理了一下，博文设置featured image果然看起来现代不少，但是要去哪找这么多合适的图片呢？当然PS是一个不错的选择，但是费时费力。看到QQ空间的皮肤倒是做的不错，直接拿来用吧，反正不违法。于是想用爬虫抓取。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;最近把博客重新整理了一下，博文设置featured image果然看起来现代不少，但是要去哪找这么多合适的图片呢？当然PS是一个不错的选择，但是费时费力。看到QQ空间的皮肤倒是做的不错，直接拿来用吧，反正不违法。于是想用爬虫抓取。&lt;br /&gt;
先调试一下，找几个图片看看：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/3/103603_top.jpg&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/7/101703_top.jpg&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/5/108725_top.jpg&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/15/111327_top.jpg&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/8/106904_top.jpg&lt;br /&gt;
http://i.gtimg.cn/qzone/space_item/orig/10/102490_top.jpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
可以看到前面的网址都是一样的`orig/%d/%d_top.jpg`，刚开始以为前面的一个数字是主题编号还是什么的，后面自然是图片ID，于是用以下的脚本抓取（Scrapy):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def start_requests(self):&lt;br /&gt;
    for i in range(0, 100):&lt;br /&gt;
        for j in range(100000, 119999):&lt;br /&gt;
            url = &amp;#039;http://i.gtimg.cn/qzone/space_item/orig/%d/%d_top.jpg&amp;#039; % (i, j)        &lt;br /&gt;
            yield scrapy.Request(url=url, callback=self.parse)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
后来抓取完成后，一共15个文件夹，每个文件夹差不多都是50-80个左右，这就有点意思了，可能腾讯利用了分布式的图片服务器，分散到0-15个不同的服务器上。随便找一个看看：&lt;br /&gt;
101195_top.jpg在11下面，通常取余的方式实现，于是来试试：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
101195% 16 = 11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
另外再验证几次也都是正确的，证明的我们的猜想。于是我们可以修改一下我们的爬虫了：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(100000, 200000):&lt;br /&gt;
    url = &amp;#039;http://i.gtimg.cn/qzone/space_item/orig/%d/%d_top.jpg&amp;#039; % (i % 16, i) &lt;br /&gt;
    yield scrapy.Request(url=url, callback=self.parse)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
这样抓取就快多了，总共抓取了1232个图片。&lt;/div&gt;</summary>
		<author><name>imported&gt;Riguz</name></author>
	</entry>
</feed>