前言
昨天看见某人的空间有上传了XXXX个头像,然后我就想着下载回来【所以本质上这是一个头像下载程序】,但是一个个另存为太浪费时间了,上网搜索有没有现成的工具,居然要注册码,还卖45一套。你们的良心也太坏了!。而且居然!!!还有一个和我同名的下载器?这一点实在让我十分的嫉恨。于是我下决心搞清楚这个东西,然而大部分资料都是Python源码,并且很多都是过期的且无法使用的了[反正我是没找到一个能用]。
好在有很多人在网上发过一些教程,虽然Python是第一次接触[差不多一天的时间],但它是实在让我惊讶。这个语言太简单,太简洁了!你很容易就能明白。就这样从这些断断续续的代码和教程中,我了解写出了这个程序。
1.准备需要的东西
python3.0,以及下面这些引用的模块
import sys import re import requests import execjs import time
一个能够登录并开通了QQ空间的QQ账号和密码。
要爬取空间相册对象的QQ账号。
一个能成功登录QQ空间,并且带有pskey参数的Cookies。
1.2 抓取Cookies
一开始我也是看着教程去找的,最后发现,Chrome[版本 76.0.3809.87(正式版本) (64 位)]根本就抓不到。接下来我还是得用一个经典的工具。
步骤:打开fiddler ,打开浏览器,访问登录你的账号,在拦截的列表中找到右侧栏中Cookies里带pskey参数,右键菜单选择查看标头将它复制,替换py文件中的Cookies参数。
(图为fiddler的拦截信息)
(图为查看标头对话框)
2.0 替换代码
将准备的QQ号码[要与Cookies对应]赋值给uin
将准备的爬取对象QQ号码赋值给fuin
将抓取的cookies赋值给cookie
2.1 执行代码
在安装完需求模块与准备好一切之后,将它保存,在PowerShell or cmd命令行中启动。 程序在爬取完相册链接后会执行Input,
填入指定目录,将输出链接.txt文件到该目录。【这时的文本文件里是未转义的JS代码,你可以写一个转义工具将 / \/ 手动转义,例如下面给出的代码:】
'\Code for vb6 '\e-mail: [email protected] Dim url() As String Public Function url_format(stra As String) As String '由于可能需要转义的url代码行超出Integr(32...)级别,启用long更稳妥 Dim strb() As String Dim i As Long url_format = "" strb = Split(stra, "\") For i = 0 To UBound(strb) If strb(i) <> "/" Then url_format = url_format + strb(i) End If Next End Function Public Sub main() Dim i As Long Open App.Path & "\ling_url.txt" For Input As #1 Do Until EOF(1) ReDim Preserve url(i) Line Input #1, url(i) url(i) = url_format(url(i)) i = i + 1 Loop Close #1 Open App.Path & "\ling_Val_url.txt" For Output As #2 For i = 0 To UBound(url()) Print #2, url(i) Next Close #2 End Sub
执行代码结果(示例):
(图为填写导出目录)