需求:拥有招聘网站的招聘者账户,爬取求职者们的简历信息。(不过这个好像是违法的,还好我失败了,不建议尝试)
尝试过的工具:
在尝试的过程中遇到了如下几个问题:
- 动态网站,直接使用Scrapy爬的话,只能爬静态网页。需要用到splash渲染
- splash渲染过的网页(和浏览器看源码得到的内容一样)和实际网页内容不符,前者body中是一些js脚本。
- 使用selenium自动化控制得到正常网页,但是会被反爬虫机制发现,提示账户存在风险。
爬虫经常遇到的问题,我基本都遇到了……
解决方案
- 现在的动态网页越来越多,可以借助splash完成渲染,这个问题不大。
- 确实会有遇到某些url是经过js处理然后再生成的情况(比如某些url的加密解密,id的运算等),这样的情况下你直接看网页源代码是找不到直接的url的,而通过检查是可以看到经过处理的url的。一般遇到这个情况,除非你了解这些url的生成方式,自行设计算法来破解,不然直接用requests库就显得力不从心了。当然,遇到这种情况也有一个“曲线救国”的办法,就是借助selenium或者splinter来模拟浏览器访问,既然是模拟浏览器,当然它们都是可以处理js程序的,所以你看到的也是直接可以访问的url。(参考
- 按照2中的解决方案,改用selenium。通过添加cookies可以正常登录,但是尝试通过定位网页元素点击时,就出出现下图中的提示,我猜是因为定位不小心,定位到了隐藏元素,被判定为爬虫。
到这之后就放弃了,毕竟只是好奇,想试一下。