使用selenium爬取淘宝ipad商品信息
- 爬取过程中的重点是实现翻页、提取商品信息、存储至数据库
访问淘宝
爬取过程中可以通过扫描二维码的方式来登陆淘宝,要注意的是访问不能过于频繁,否则ip会被限制访问。 防止ip被限制访问可以通过使用代理,或者降低访问的频率
1.获取商品的总页数
- 检查其html源码
- 可通过CSS选择器来选取总页数,进而获取其总页数
代码如下:
def search(url): # 获取商品的总页数
try:
browser.get(url) # 访问url
browser.maximize_window() # 最大化浏览器
sum = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.total')))
# 等待总页数的加载出现
return int(sum.text[1:-2]) # 截取价格的数字部分,第二个元素至倒数第二个元素
# 返回总页数
except TimeoutException:
search(url)
2.实现翻页操作
- 这里通过页数输入框和确定按钮来实现翻页操作,而不是用下一页按钮。因为如果使用下一页按钮的话,需要记录页数,而且如果中间出错的话,无法判别正确页数是哪一个,及后续操作无法进行
- 同样的,通过CSS选择器来选取输入框和确定按钮
input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.form > input')))
# 等待输入框加