
玩爬虫第二天,所以很多还不太懂,本来想用爬虫批量爬 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 Nov 3, 2015 via Android qq 空间很难爬, over |
3 crab Nov 3, 2015 |
5 SCaffrey Nov 3, 2015 |
7 ChoateYao Nov 3, 2015 手机 QQ 空间,我只能帮你这么多了。 |
8 uuspider Nov 3, 2015 这是个“模拟登陆”的问题,可能涉及 cookies ,代理, User Agent ,表单,甚至 RSA 。。。 一点一点分析吧。 |
9 SparkMan Nov 3, 2015 qq 空间难度太大,建议你先爬淘宝,你几十个线程也不至于被封,也不至于把他爬挂了。小网站你多玩几次就把他玩死了 |
11 7z7 Nov 3, 2015 QQ 空间模拟登录算简单了, get 方式的,只有一个密码算法。返回的 cookie 就可以用于爬虫用了。 |
12 Victor215 Nov 3, 2015 via Android 难度大 第一 登录 第二 动态 第三 html 不规范 第四 反爬虫 第五 …… |
15 magicfingers Nov 3, 2015 你可以试试 import.io |
16 w88975 Nov 3, 2015 之前有写过 QQ 的刷票器,利用的就是 QQ 空间的登录取到 cookie ,模拟登录这个过程有点繁琐,需要计算密码的加密,验证码,还有什么 skey 之类的。 搜索引擎搜一下能找到很多思路,稍微难一点的在于验证码部分。 |
17 kmahyyg Nov 3, 2015 自动挂 wapqq 的有吗? |
18 crytis Nov 4, 2015 via Android 用 selenium 。哈哈 |
19 zzy8200 Nov 4, 2015 via iPhone |
20 zzy8200 Nov 4, 2015 via iPhone @kmahyyg 挂 webqq : https://github.com/zeruniverse/QQParking |
21 Anteiku Nov 4, 2015 via Android 几年前写过发说说的,你可以试试模拟早期诺基亚手机的 UA ,那种页面比较容易处理。 |
22 surefire Nov 4, 2015 记得 Python 的里的模块要设置 UserAgent ,不然默认是一个 python 的什么模块名,人家网站也不是傻子,一看就知道你是爬虫,自己填个什么 Chrome 浏览器的冒充一下。另外登陆问题肯定是大头,解决了这个其他就好办了 |
23 lcy Nov 4, 2015 |
30 M1ehh Nov 4, 2015 via Android 爬早期手机 QQ 空间网页版。 |
31 jwangkun Nov 4, 2015 去爬新浪微博吧, QQ 空间是个封闭的空间你大部分东西都是分权限才能看,就算你模拟登录还是一样拿不到关键的数据 |
34 haofly Nov 6, 2015 使用 curl : http://haofly.net/python3-get-qqalbum/ |