先简单说一下,利用的是selenium模仿浏览器访问淘宝,使用xpath分离其中的数据,经过多次的修改之后,已经可以完成完整的中断再访问功能,
其中相对比较关键的遍历代码已经被我删除了,如果想要使用代码的话可以call我,现在可以实现的功能自动的登录、搜索,只是去除了中间的遍历功能,有一定爬虫代码功底的人结合注释应该都可以看懂.
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
import requests
import csv
driver = webdriver.Chrome()
driver.get('https://www.taobao.com/')
time.sleep(5) #停一会防止出意外
#登陆账号
driver.find_element_by_xpath("//a[@href='https://login.taobao.com/member/login.jhtml?f=top&redirectURL=https%3A%2F%2Fwww.taobao.com%2F']").click() #清空搜索框
driver.maximize_window() #放大一下显示出扫码界面
driver.find_element_by_xpath("//i[@class='iconfont icon-qrcode']").click()
time.sleep(20)
#进入具体的搜索界面
cxxx='时装' #搜索内容
driver.find_element_by_xpath("//input[@aria-label='请输入搜索文字']").clear() #清空搜索框
driver.find_element_by_xpath("//input[@aria-label='请输入搜索文字']").send_keys(cxxx) #向搜索框中添加内容
#进入搜索中的具体内容
driver.find_element_by_xpath("//button[.='搜索']").click() #点击搜索
time.sleep(3)
i=0 #i作为参数进行控制
#我们接下来设置一个启动时的程序,来控制开始时的翻页
fy=open('text.txt')#刚开始打开时的翻页控制
ym=fy.read()
ym=int(ym)
fy.close()
js="var q=document.documentElement.scrollTop=100000" #翻到页尾
driver.execute_script(js) #翻到页尾
driver.find_element_by_xpath("//*[@id='mainsrp-pager']/div/div/div/div[2]/input").clear() #清空搜索框
driver.find_element_by_xpath("//*[@id='mainsrp-pager']/div/div/div/div[2]/input").send_keys(ym) #输入
driver.find_element_by_xpath("//*[@id='mainsrp-pager']/div/div/div/div[2]/span[3]").click() #点击进入中断页
while(i<=96):
time.sleep(3)
all_handle = driver.window_handles
driver.switch_to_window(all_handle[-1]) #切换完成
if(i==96):
i=0 #如果一页翻完,对其重置
#需要使其进入下一页
driver.refresh()
# js="var q=document.documentElement.scrollTop=100000"
#driver.execute_script(js)
time.sleep(3)
ym=ym+1
#存储中断页
with open('text.txt','w') as file:
file.write(str(ym))
# ymstr=str(ym)
# driver.find_element_by_xpath("//*[@id='mainsrp-pager']/div/div/div/div[2]/input").clear() #清空搜索框
# driver.find_element_by_xpath("//*[@id='mainsrp-pager']/div/div/div/div[2]/input").send_keys(ymstr) #向搜索框中添加内容
js_top = "var q=document.documentElement.scrollTop=0" #滚动到页面顶部
driver.execute_script(js_top)
driver.find_element_by_xpath("//*[@id='J_relative']/div[1]/div/div[2]/ul/li[3]/a").click() #点击翻页
a=driver.find_elements_by_xpath("//a[@trace='msrp_auction']") #寻找trace属性为msrp_auction的元素
if(i>=len(a)):
i=96
continue
else:
a[i].click() #进行点击
i=i+2 #依次
time.sleep(7)
#加下来把页柄切到新的一页Unable to locate element: {"method":"xpath","selector":"//*[@id='J_Title']/h3"} (Session info: chrome=83.0.4103.116)
all_handle = driver.window_handles
driver.switch_to_window(all_handle[-1]) #切换完成
try:
print("删除了")
except:
driver.close()
continue
print('商品名称:'+spm)
print('商品价格:'+spjg)
print('商品店铺:'+spdp)
print('商品产地:'+spcd)
#写一下存储信息功能
with open('data.csv','a') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([spm,spjg,spdp,spcd])
print(i)
driver.close()
版权声明:本文为weixin_44195924原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。