_知多少_ 2020-05-23 16:17 采纳率: 0%
浏览 766

selenium爬虫淘宝报错:Screenshot: available via screen

代码如下:

from selenium import webdriver
from lxml import etree
import time
import xlwt

driver = webdriver.PhantomJS() #实例化游览器
driver.maximize_window()    #窗口最大化
linkss = []
def get_info(url,page):     #定义获取商品信息的函数
    page = page + 1
    driver.get(url)
    driver.implicitly_wait(10)      #隐式等待10秒
    selector = etree.HTML(driver.page_source)   #请求网页源代码
    infos = selector.xpath('//div[@class="item J_MouserOnverReq  "]')
    for info in infos:
        jiage = info.xpath('div[2]/div[1]/div[1]/strong/text()')
        good = info.xpath('div[2]/div[1]/div[2]/text()')
        name = info.xpath('div[2]/div[2]/a/text()')
        links = [jiage,good,name]
        linkss.append(links)

    if page <= 50:
        NextPage(url,page)      #进入下一页
    else:
        pass

def NextPage(url, page):    #定义进入下一页的函数
    driver.get(url)
    driver.implicitly_wait(10)
    driver.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()
    time.sleep(4)
    driver.get(driver.current_url)
    driver.implicitly_wait(10)
    get_info(driver.current_url,page)    #调用get_info函数

if __name__ == '__main__':  #程序主入口
    page = 1
    url = 'https://www.taobao.com/'
    driver.get(url)
    driver.implicitly_wait(10)
    driver.find_element_by_id('q').clear()
    driver.find_element_by_id('q').send_keys('男士短袖')    #输入商品名称
    driver.find_element_by_class_name('btn-search').click() #点击搜索
get_info(driver.current_url,page)
headers = ['价格', '购买人数', '商品名称']    #创建表头
taobao = xlwt.Workbook(encoding='utf-8')    #创建工作簿
sheet = taobao.add_sheet('Sheet1')      #创建工资表
for h in range(len(headers)):           #写入表头
    sheet.write(0, h, headers[h])
i = 1
for link in linkss:                 #写入数据
    j = 0
    for data in link:
        sheet.write(i, j, data)
        j += 1
    i += 1
taobao.save('t.xls')     #保存到本地

报错:

Traceback (most recent call last):
  File "D:/PaaChong/TaoBao.py", line 44, in <module>
    get_info(driver.current_url,page)
  File "D:/PaaChong/TaoBao.py", line 23, in get_info
    NextPage(url,page)      #进入下一页
  File "D:/PaaChong/TaoBao.py", line 30, in NextPage
    driver.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()
  File "D:\Python3.8.1\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 258, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "D:\Python3.8.1\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 711, in find_element
    return self.execute(Command.FIND_ELEMENT,
  File "D:\Python3.8.1\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 201, in execute
    self.error_handler.check_response(response)
  File "D:\Python3.8.1\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 181, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: {"errorMessage":"Unable to find element with xpath '//a[@trace=\"srp_bottom_pagedown\"]'","request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"119","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:59370","User-Agent":"Python-urllib/3.8"},"httpVersion":"1.1","method":"POST","post":"{\"using\": \"xpath\", \"value\": \"//a[@trace=\\\"srp_bottom_pagedown\\\"]\", \"sessionId\": \"566c2c60-9ccd-11ea-b689-cbd2ca6c443c\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/566c2c60-9ccd-11ea-b689-cbd2ca6c443c/element"}}
Screenshot: available via screen

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮