a.你知道吗,爬这个网站能让你恶心,字段极多,并且男生的页面和女生的页面结够还不一样,所以男女数据所在网页里面的位置也就不一样,标签属性也有不同的地方,所以,我是用if分开男女去分别爬取的,中间也包含一些数据转换和拆分处理,也有一些小坑,我在下面的代码里会说
b.网站有反扒技术,之前写了一个爬虫,请求,解析,存取都在一个文件中,当请求过快时会被服务器远程强制断掉,解决的办法是使用代理ip和更换UserAgent,但是有一个bug就是代理爬取的代理ip的可用度极低,导致速度极慢,后来就果断注掉了,发现是ok的,他的反爬机制没有弄的太明白.
c.模拟登陆:严格说不能算模拟,解决的办法是手动在网页登陆之后,然后把去浏览器中把cookie抓出来,放到headers里面,请求的时候带上cookie,这样就能请求到登陆之后才能抓到的数据了。
d.分析网页,用户的详情页是跟随id在改变的,所以爬取的逻辑是用一个for循环id+请求的连接,还能天然的去重,中间有时会出现未知的错误断掉,大家可以自己在for外面捕获一个异常,然后整个代码装在一个def里,用递归实现一直循环
3)开发工具:pycharm+python3.6
2.简单的说下MQ在这个任务中的作用:将一个任务纵向拆分成若干块,每一块之间以消息队列为介质进行连接并传送需要的信息,这样让执行不同任务逻辑的的代码可以并行工作,互不影响并且能提高程序运行的效率,消息队列有六个工作模式,这里用到的是work模式,建议百度了解原理,在此不过多阐述。下面我自己画了一张图助于大家理解代码的实现逻辑和过程,希望能帮到大家!(大一点看得比较清楚)
后续会把多线程也加进去,不断地优化和改进,虽然辛苦,实现之后还是有一种那叫什么感来着^_^,望大家多多指点,欢迎留言交流·····!