前言
你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步!
今天我们用selenium与BeautifulSoup联动来模拟用户登录淘宝,爬取商品数据,让我们一起来尝尝这碗靓汤吧!🙂🙂🙂
警告:本教程仅用作学习交流,请勿用作商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系壹乐删除!!!
一、明确目标
根据我们输入的关键字搜索商品,从而查找爬取商品的名称,店铺名,价格,成交量,地址及商品链接,最后保存到本地。
二、分析过程
首先,我们直接访问淘宝url:https://www.taobao.com/,打开开发者工具,看看我们需要的数据都藏在哪里。(不知道如何找的可以看我上一篇文章)
平时我们逛淘宝找商品时,都是通过搜索关键字来查找自己心仪的商品,所以我们搜先要定位搜索框的位置,然后传入关键字参数,再模拟点击搜索按钮。
代码如下:
want = input('请输入需要查询的商品\n')
driver = webdriver.Chrome()
# 设置引擎为Chrome,真实地打开一个Chrome浏览器
driver.get('https://www.taobao.com/')
# 访问淘宝网
time.sleep(2)
# 等待网页加载
driver.find_element_by_id('q').send_keys(want)
#找到搜索框标签,传入需要查询的内容
driver.find_element_by_class_name('search-button').click()
#点击搜索按钮
之后就会出现让我们登录的页面,如下:
然后我们需要手动登录淘宝账号,可以选择扫码或者账号登录,个人推荐扫码登录不易被淘宝反爬
这里以棉衣为例子,登录之后我们可以通过开发者选项中的小箭头来查找我们需要的数据的标签位置
每一个div class="item J_MouserOnverReq "都对应一个商品,我们需要的数据都在里面,然后用driver.page_source 获取页面源码
但是现在只是获取了一页的数据,我还想获取更多的话就得打开第二第三页了,现在让我们来分析下每一页的网址有什么不一样
我们可以观察到两个变量,首先每页有44个商品,而s每次增加44,可以看成第二页从第44个商品开始,第三页从第88个商品开始,第四页从第132个商品开始
,依此类推便可。