玩爬虫第二天,所以很多还不太懂,本来想用爬虫批量爬 QQ 空间用户头像、昵称、还有对应发表过的说说图片,什么都不懂,网上查了一下资料,发现流程大概是:获取页面 html —>正则匹配—>保存下载想要的信息。
然后就写了一个简单的代码测试一下能不能拿到主页的个人图片:
import urllib.request
import re
import os
def find_imgs(page_url):
pattern = r'<img .? src="( http://(\w+.)+\w+\/.?)"'
html = url_open(page_url).decode('UTF-8')
print(html) # 这里打印出来才知道原来还没登录
img_addrs = re.findall(pattern,html)
print(img_addrs) # 一直都没东西
return img_addrs
def save_imgs(addrs):
# 循环保存就不写了
def download():
os.mkdir('image') #新建文件夹
currentpath = os.getcwd() #获取当前工作目录
url = 'http://user.qzone.qq.com/'
img_addrs = find_imgs(url) #获取图片地址
save_imgs(img_addrs) #保存图片
if __name_ == 'main':
结果发现爬虫得先登录 QQ ,网上都是爬知乎、豆瓣、 V2EX 、淘宝....居多,希望给个例子参考或者推荐一些学习资源
1
Victor215 2015-11-03 19:00:12 +08:00 via Android
qq 空间很难爬, over
|
3
crab 2015-11-03 19:02:03 +08:00
|
5
SCaffrey 2015-11-03 19:04:57 +08:00
|
7
ChoateYao 2015-11-03 19:11:27 +08:00
手机 QQ 空间,我只能帮你这么多了。
|
8
uuspider 2015-11-03 19:20:42 +08:00
这是个“模拟登陆”的问题,可能涉及 cookies ,代理, User Agent ,表单,甚至 RSA 。。。
一点一点分析吧。 |
9
SparkMan 2015-11-03 19:22:50 +08:00
qq 空间难度太大,建议你先爬淘宝,你几十个线程也不至于被封,也不至于把他爬挂了。小网站你多玩几次就把他玩死了
|
11
7z7 2015-11-03 19:28:41 +08:00
QQ 空间模拟登录算简单了, get 方式的,只有一个密码算法。返回的 cookie 就可以用于爬虫用了。
|
12
Victor215 2015-11-03 19:29:58 +08:00 via Android
难度大 第一 登录 第二 动态 第三 html 不规范 第四 反爬虫 第五 ……
|
15
magicfingers 2015-11-03 20:24:55 +08:00
你可以试试 import.io
|
16
w88975 2015-11-03 20:25:18 +08:00
之前有写过 QQ 的刷票器,利用的就是 QQ 空间的登录取到 cookie ,模拟登录这个过程有点繁琐,需要计算密码的加密,验证码,还有什么 skey 之类的。
搜索引擎搜一下能找到很多思路,稍微难一点的在于验证码部分。 |
17
kmahyyg 2015-11-03 23:14:38 +08:00
自动挂 wapqq 的有吗?
|
18
crytis 2015-11-04 00:03:52 +08:00 via Android
用 selenium 。哈哈
|
19
zzy8200 2015-11-04 04:52:01 +08:00 via iPhone
|
20
zzy8200 2015-11-04 04:52:27 +08:00 via iPhone
@kmahyyg 挂 webqq : https://github.com/zeruniverse/QQParking
|
21
Anteiku 2015-11-04 06:23:00 +08:00 via Android
几年前写过发说说的,你可以试试模拟早期诺基亚手机的 UA ,那种页面比较容易处理。
|
22
surefire 2015-11-04 08:17:52 +08:00
记得 Python 的里的模块要设置 UserAgent ,不然默认是一个 python 的什么模块名,人家网站也不是傻子,一看就知道你是爬虫,自己填个什么 Chrome 浏览器的冒充一下。另外登陆问题肯定是大头,解决了这个其他就好办了
|
23
lcy 2015-11-04 09:48:51 +08:00
|
26
CheungKe 2015-11-04 09:57:52 +08:00
@lyning 我们有在做 微信,微博, qq 空间(日志,说说,相册)的数据获取。只有微博是我做的, qq 空间的话,我知道大概思路。
|
27
CheungKe 2015-11-04 10:00:17 +08:00
@lcy 手机版微博,虽然登录限制少了。解析 html 是个问题,很多时候 tag 没有 class ,或者 id 。 qq 空间估计也一样。
|
30
M1ehh 2015-11-04 10:48:54 +08:00 via Android
爬早期手机 QQ 空间网页版。
|
31
jwangkun 2015-11-04 10:50:39 +08:00
去爬新浪微博吧, QQ 空间是个封闭的空间你大部分东西都是分权限才能看,就算你模拟登录还是一样拿不到关键的数据
|
34
haofly 2015-11-06 06:37:12 +08:00
使用 curl : http://haofly.net/python3-get-qqalbum/
|