ok,思路捋顺后,我们开干,这里,以拉钩网上的“产品运营”岗位做示例。
使用环境:win10+python3+Juypter Notebook
第一步:分析网页
要爬取一个网页,肯定首先分析一下网页结构。
现在很多网站都用了一种叫做Ajax(异步加载)的技术,就是说,网页打开了,先给你看上面一部分东西,然后剩下的东西再慢慢加载。 所以你可以看到很多网页,都是慢慢的刷出来的,或者有些网站随着你的移动,很多信息才慢慢加载出来。这样的网页有个好处,就是网页加载速度特别快(因为不用一次加载全部内容)。
但这个技术是不利于爬虫的爬取的,所以这个时候,我们就要费点功夫了。
很幸运的是,拉钩采用了这种技术。异步加载的信息,我们需要借助chrome浏览器的小工具进行分析,按F12即可打开,点击Nerwork进入网络分析界面,界面如下:
这时候是一片空白,我们按F5刷新一下刷新一下,就可以看到一系列的网络请求了。
然后我们就开始找可疑的网页资源。首先,图片,css什么之类的可以跳过,一般来说,关注点放在xhr这种类型请求上,如下:
这类数据一般都会用json格式,我们也可以尝试在过滤器中输入json,来筛选寻找。
上图发现了两个xhr请求,从字面意思看很有可能是我们需要的信息,右键点击,在另一个界面打开:
what is this?Are you kidding me?嗯,这里是个坑,同样在写爬虫代码时候,如果在http请求中,不加入请求头信息,服务器返回信息也是这样的,但是笔者不明白的是,为什么,在这里笔者直接用浏览器新开窗口,也是这个拒绝访问的界面。如果有大神知道,希望给解解惑,拜谢!
回到正题,虽然新开窗口,无法访问,但条条大陆通罗马,我们可以在右边的框中,切换到“Preview”ÿ