聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)

版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置标明出处!!!

tips:本基础系列旨在以爬虫带大家入门Python语言

这段时间有点忙,没有抽出时间来给该基础系列做最后的总结,今天正好有空,所以用最后一个练手项目作为该基础系列的答卷。本文并不会提供参考代码,本文只在逻辑上讲解该如何去实现它,也算是给各位初学者布置的一份作业,当然若是你有什么不明白的地方也可以私信我。

作业

作业是什么呢,作业就是爬取陶女郎里的美女模特,淘女郎的主页就像项目这样的。


聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第1张图片

爬取思想

前面的文章讲过网络爬虫的开发步骤,这里再提一下。

  • 使用开发者工具查看页面元素
  • 找到你要爬的目标元素
  • 寻找目标元素的规律
  • 使用正则表达式提取你想要的元素(当然你也可以使用相应的库想BeautifulSoup,lxml都可以)
  • 存储你元素

爬虫的思想大致就是这样的,找规律的同事加上一定的猜想,基本就妥妥的了。下面我们通过开发者工具查看一下页面元素,看到的结果如下图所示,所有模特的照片都包含在一对ul标签里。


聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第2张图片

确定元素

我们用urlopen来打开一个网页的时候获取到的是该页面的静态文本,所以我们要确认我们需要的信息是否在静态页面里,右键鼠标查看页面代码,我们在源码里搜索「朱琳」这个人,发现页面源码里并没有这个人的信息。


聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第3张图片

那么问题来,模特的信息应该是动态信息,那咋弄呢。

NETWORK使用

既然网页信息是动态的,那么它肯定想服务器提交了什么查询动作,那么很正常的我们就想到了使用开发者工具里的NETWORK工具,查看浏览器和服务器都有哪些网络交互。如下图:

聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第4张图片

从图中箭头所指的地方往下全是图片信息,而且它的Type是xhr,那么我们可以猜想肯定是它发起了一个异步的请求,鼠标单机该项我们来看看该请求是什么请求,都带了哪些参数。
聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第5张图片

从图中可以看到是一个POST请求,请求的地址是: https://mm.taobao.com/tstar/search/tstar_model.do;从.do文件结尾我知道淘女郎应该使用Java开发的。我们看看POST带了哪些参数
聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第6张图片

箭头指的地方就是POST索要提交的参数,从字面意思应该能猜到几个参数的意思,遇到viewFlag、q这种参数不好猜的情况就好的办法就是在网页上随变做一些操作再看这些参数有什么变化,观察几次你自然就知道每个参数所代表的意思了。在看看该POST请求都返回了什么,可以点击查看Response一项,你可以看到是一个json的字符串,模特的信息就包含在searchDOList里。
聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第7张图片

当然你也可以在Preview想查看,Preview项看到的结果是这样的


聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第8张图片

验证

复制其中任何一个图片地址到浏览器里打开它,看看结果是什么。


聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列)_第9张图片

从结果中我们可以看到这张照片就是「朱琳」这个人的封面照

okay,爬虫的基础系列就到这里结束了,各位可以自己动手去试试。


欢迎关注我:「爱做饭的老谢」,老谢一直在努力...

你可能感兴趣的:(聚沙成塔--爬虫系列(二十)(一份答卷,结束爬虫的基础系列))