整体思路:
打开浏览器–
打开url–
最大化浏览器–
点击登录,选择扫码–
登录后输入查询内容–
获取查询内容当前页码的字段–
循环点击下一页直到最后一页–
输出–
关闭浏览器
小白一枚,暂时还不会抽成方法去做,暂时这么看着啦~~
from selenium import webdriver
import time
import pandas as pd
#打开浏览器,打开淘宝url
driver = webdriver.Chrome(r'C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\Scripts\chromedriver.exe')
driver.get('https://www.taobao.com/')
#浏览器最大化
driver.maximize_window()
#点击登录/扫码,然后等待15s(这时候用手机扫码登录,之前看教程说用密码容易被淘宝反爬虫)
driver.find_element_by_css_selector('.site-nav-sign .h').click()
driver.find_element_by_css_selector('.iconfont.icon-qrcode').click()
time.sleep(10)
#查询框输入,点击搜索
driver.find_element_by_css_selector('.search-combobox-input-wrap input').send_keys('T恤女士优衣库大妈')
driver.find_element_by_css_selector('.btn-search.tb-bg').click()
#当前页面每个搜索结果
def search_product():
divs = driver.find_elements_by_css_selector('.item.J_MouserOnverReq ')
temp = []
for div in divs:
#商品名称
info = div.find_element_by_css_selector('.row.row-2.title a').text
#商品价格
price = div.find_element_by_css_selector('.price.g_price.g_price-highlight strong').text+'元'
#购买人数
buy_num = div.find_element_by_css_selector('.deal-cnt').text
#店铺名称
name = div.find_element_by_css_selector('.shopname.J_MouseEneterLeave.J_ShopInfo').text
#店铺地点
place = div.find_element_by_css_selector('.row.row-3.g-clearfix .location').text
temp.append([info,price,buy_num,name,place])
return temp
#用循环去点击下一页,直到下一页禁止点击就停止
list1=[]
while True:
list1 += search_product()
time.sleep(3)
#获取下一页按钮的定位
page = driver.find_element_by_css_selector('.item.next')
#判断当返到最后一页时,这里class的属性会有next-disabled的就停止点击
if 'next-disabled' in page.get_attribute('class'):
break
else:
page.click()
time.sleep(3)
#用pandas写到excel,保存到本地
df = pd.DataFrame(list1,columns=['info','price','buy_num','name','place'])
df.to_excel(r'C:\\Users\\Administrator\\Desktop\\taobao.xls')
#关闭浏览器
driver.close()