# 淘宝网
# 从selenium引入 webdriver
from selenium import webdriver
import time
# 声明一个类
class TaoBao(object):
# 初始化时,传递要查询的商品关键词
def __init__(self,keyword):
self.keyword = keyword
def start_taobao(self):
# 1.创建浏览器对象,运行会自动打开
driver = webdriver.Firefox()
# 2.打开淘宝网址
driver.get('https://www.taobao.com')
# 3.通过id找到输入框
search_input = driver.find_element_by_id('q')
# 4.输入搜索的关键词
search_input.send_keys(self.keyword)
# 5.通过class找到搜索按钮
search_btn = driver.find_element_by_class_name('btn-search')
# 6.点击搜索按钮
search_btn.click()
time.sleep(2)
# 1.打开文件 encoding = 'utf-8' 指定打开文件的字符编码
file_handle = open('%s.txt' %self.keyword, 'w', encoding='utf-8')
for x in range(1, 11):
print('正在获取第%s页数据,请稍后.....' % x)
# for循环执行5次
for x in range(1, 11, 2):
# 休眠
time.sleep(1)
# 把x转换为小数
j = x / 10
# 拼接让浏览器滚动的js代码
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
# 执行让浏览器滚动的js代码
driver.execute_script(js)
# 查找当前页面所有的商品信息,返回的是一个列表
shops = driver.find_elements_by_class_name('info-cont')
if len(shops) == 0:
shops = driver.find_elements_by_class_name('J_MouserOnverReq')
# for循环遍历列表,取出每一个产品信息
for shop in shops:
# 2.写入文件商品信息
file_handle.write(shop.text)
file_handle.write('\n\n')
# 找到下一页,点击
# 找到li标签下一页
next_li = driver.find_element_by_class_name('next')
next_li.click()
# 3.
# 4.
driver.close()
# __name__ 值为__main__表示从当前文件开始运行
# __name__ 值为当前文件名称 表示从别的文件运行
if __name__ == '__main__':
print(__name__)
# 输入查询的关键词
keyword = input('请输入要查询的商品关键词:')
tb = TaoBao(keyword)
tb.start_taobao()