一些废话
之前写的用python3+urllib写的多线程微博(传送门),后面发现登录账号频繁被403,所以解决登录问题迫在眉睫。而且python的“多线程”并不那么多线程,最近因为刚需,需要稳定的微博爬虫,所以琢磨了一下使用selenium+aiohttp+redis写了一个使用asyncio的新浪爬虫。
简介
这里不多废话,大概介绍一下怎么做的。大致是:
登录
通过weibo.com登录界面登录,因为weibo.cn登录如果需要验证的话是要类似于解锁那样验证的,不好做。
而weibo.com只要输入验证码,而验证码可以通过yundama来验证,yundama也不贵,验证一次大概一分钱吧,登录成功后,在去访问weibo.cn,新浪会自行转换weibo.com的cookies到weibo.cn的cookies
然后把cookies保存在redis共享
抓取
使用了aiohttp,毕竟python的协程比多线程更给力,爬虫就是个频繁io的过程,自然用协程比多线程快了不少。
解析用的是bs4,解析后的数据放到kafka上,想存哪存哪~
talk is cheap, show you the code
这里就不说具体怎么做和使用了,README.md上有使用不走,感兴趣的看源码去吧。