在Python爬虫的学习过程中,我们注意到天猫的搜索功能需要登录才能查看后续页面,因此本文选择了天猫作为目标进行商品信息的抓取。然而,爬取时仅限于第一页,后续页面的抓取需要登录账号。(相比之下,京东的搜索功能在下一页无需登录,后续将考虑爬取京东的商品信息)
直接获取商品信息的爬取步骤如下:
- 首先,获取天猫搜索页面的URL,以及搜索关键字。例如,list.tmall.com/search_p...,通过q参数输入搜索词,这里使用send_keys方法输入关键字。
- 定位搜索过程至关重要,包括找到输入框元素并使用send_keys输入关键字,以及定位并点击搜索按钮。
- 利用pyquery库解析网页,抓取商品图片、名称、价格、详细信息以及销售额等关键数据。
- 由于天猫限制,代码中设置了page参数为1,将抓取到的信息写入CSV文件,但存在不能分行存储的问题,正在寻找解决方案。
- 为改进存储,我们选择用列表存储数据,并在CSV文件中分行写入,使用'a+'模式以追加方式写入,同时减少多余换行。
如果想要抓取多页商品,方法包括点击下一页或直接输入页面编号。本文选择了后一种方法,通过循环实现逐页抓取,处理可能的登录验证。
- 遇到登录验证时,代码会设置20秒的等待时间,确保账号密码输入后继续抓取。通过for循环,抓取的页面数量可扩展到多页,例如每页80个,三页总共240个商品。