在上文我们学习了一些selenium的知识,本节将使用selenium爬取淘宝商品——美食。
目标
打开:https://www.taobao.com,在输入框输入美食搜索后,将搜索到的美食信息,比如说名称,单价,地址,购买人数等信息爬取下来,并保存到MongoDB中。
分析
搜索关键字美食之后,如图
有100页的内容,我们得抓取每一页的信息。观察其URL变化,好像没有发现什么规律。所以,不能按照之前的简单改变URL的方法爬取。
那怎么办呢?这时,我们可以使用之前学过的selenium的知识,操作浏览器,让其不停的翻页,然后针对每一页,抓取信息。
实践
首先,对于美食而言,具有100个页面,但对于其他一些商品,可不一定。所以,我们得获取到共有多少页这个信息。
测试一下效果:正确得到了结果。
接下来,我们想让浏览器自动翻页。大致思路如下:
如图,每个页面都有一个输入页数的输入框,以及一个确定按钮,我们只需获取输入框元素,传递页数,点击确定按钮即可,而这一切,都可以用selenium实现。值得注意的是,每次一跳转到相应的页面时,有一个表项颜色不一样,如下图:
表示处在哪个页面,如果这个表项与我们传递的页数一致的话,说明已经跳转成功了,下面附上代码:
自己测试一下呗!
接下来,就是抓取页面所需的商品信息了,我们依旧使用BeautifulSoup。
运行一下,结果如图:
最后,把product存入MongoDB即可:
整体运行一下代码……
查看MongoDB,内容已就位!
以上。
领取专属 10元无门槛券
私享最新 技术干货