找到输入框和搜索按钮的class input 想要搜索的商品名称 通过xml规则拿到商品list的信息 然后追加到json文件里 记住 打开json的时候要带上 a 这才是追加 不然就每次循环都是新的了
判断有下一页有就点击 没有就说明到了最后一页了 break掉
from selenium import webdriver
import time
# 创建浏览器对象
driver = webdriver.Chrome()
# 访问京东首页
driver.get('https://www.jd.com/')
# 找到搜索框按钮,接收终端输入,发送到搜索框
text = driver.find_element_by_class_name(
'text')
key = input("请输入要搜索的内容:")
text.send_keys(key)
# 点击 搜索按钮
button = driver.find_element_by_class_name(
'button')
button.click()
time.sleep(2)
while True:
# 执行脚本,进度条拉到最底部
driver.execute_script(
'window.scrollTo(0,document.body.\
scrollHeight)')
time.sleep(3)
# 提取数据,分析数据
rList = driver.find_elements_by_xpath(
'//div[@id="J_goodsList"]//li')
# rList : ['商品1节点对象','商品2节点对象']
for r in rList:
contentList = r.text.split('\n')
price = contentList[0]
name = contentList[1]
commit = contentList[2]
market = contentList[3]
d = {
"价格":price,
"名称":name,
"评论":commit,
"商家":market,
}
with open("jd.json","a",encoding="utf-8") as f:
f.write(str(d) + '\n')
# 点击下一页,-1表示没找到
if driver.page_source.find(
'pn-next disabled') == -1:
driver.find_element_by_class_name\
('pn-next').click()
time.sleep(3)
else:
print("爬取结束")
break
WX20200720-140552.png最后效果是这样
网友评论