这是什么:
最近接到一个需求就是爬取韩国游记内容,其中碰到了很多坑(或者说自己不够仔细...),在这里记录一下吧=,=
爬取需求,及最终结果展示那么接下来就按照需求的部分一步一步分析马蜂窝里面这些信息所在了~
第一步
还是老样子,先分析一下网站的结构或者规则什么的。
打开 http://www.mafengwo.cn/travel-scenic-spot/mafengwo/10184.html 直接来到了马蜂窝韩国游记的页面~
韩国游记可以看到,游记分为最新游记和最热游记两类,最后的目标是把这两个分类的所有游记全部爬取下来。
现在应该开始获取到每个node(游记,我把每个游记都当成一个节点-,-)的url了。老办法,还是查看网站源代码看能否找到这个元素。
第一个node的title是冬季....在网站源代码中查找关键词,看能否找到对应元素。
在网站源代码中无法找到对应元素可以看到,查找元素失败了...
那么理所应当的想到,这个马蜂窝并不是简单的静态网站。。这些游记列表是通过js动态生成的。。
开始找这些列表是怎么生成的,还是老办法,抓包看看能不能找到。
点击第二页,查看网页发包情况点击第二页,可以看到网页地址也并没有改变。打开浏览器控制台,点击网络。
网页发包情况可以看到,我们每次点击换页,网站都会发送一个ajax。我们现在可以看每次发包的响应里面是否有我们想要的内容。
响应结果我们想要的结果就在这里...
接下来我们就要查看每次发包的参数规则了。。
第2页 第三页可以看到里面每次变化的规则就是page变化,第二页为2,第三页为3,cost,days,month,应该是其他的筛选条件,mddid据我观察是,每个目的地的id,韩国的id为10184。这次我们只需要韩国的,所以只改这个page数就行了。
编码后的res列表里面每个元素都是tn-item
我们接下来只需要通过bs4找到所有的href就可以啦~
第一部分到此结束哈~
ps:有什么问题可以加我企鹅 -,- 373016896一起探讨
网友评论