树莓派 + python + selenium

    技术2026-02-16  16

    利用cookies免登录

    #手动登录保存cookies from selenium import webdriver import json,time d.webdriver.Chrome() d.implicitly_wait(15) d.get('http://bilibili.com') time.sleep(2) input('输入任意继续...') #此时在浏览器里面手动登录 cookies = d.get_cookies() jsoncookies = json.dumps(cookies) #转为json with open('cookies','w') as f: f.write(jsoncookies) #将内存数据写入磁盘 d.close() #再次登录载入cookies d.webdriver.Chrome() d.implicitly_wait(15) d.get('http://bilibili.com') d.delete_all_cookies() #删除当前所有cookie with open('cookies' ,'r' ,encoding = 'utf-8') as f: listcookies = json.loads(f.read()) #读取磁盘文件保存的cookie数据 for cookie in listcookies: #添加cookie d.add_cookies({ 'domain': '.bilibili.com', #注:此处bilibili.com前,需要带点 'name': cookie['name'], 'value': cookie['value'], 'path': '/', 'expires': None }) d.get('http://bilibili.com') #刷新网页,查看是否cookie添加成功 time.sleep(10) d.close()

    元素被挡着,无法被点击时

    d.execute_script('arguments[0].click();', ele) #arguments是类数组对象,包含了传递给函数的所有参数,虽然你可以通过arguments[n]去访问第N个参数

    XPATH

    / #根目录 /.../... #绝对路径 //...//... #任意相对位置 ./div #当前元素下的div直接子元素 //div/* #通配符 //*[@id = 'text'] #根据id属性选择 //div[@class = 'ab cd'] #根据class属性选择div标签,属性值一定写全(不同于css可以只写一个) //*[contains(@style,'color')] #选择style属性值包含'color'一词的标签 //*[starts-with(@style,'color')] ##选择style属性值以'color'开头的标签 //div[2] #类型为div的子元素的第2个(不是:第2个子元素,并且是p类型 ) //div/*[2] #div标签的子元素中的第二个 //div[last()] #倒数第一个 //div[last()-1] #倒数第二个 //div[position()<3] #div标签的子元素中的前两个 //*[@class='text']/*[position()>=last()-2] #class属性值为text的标签 的 后三个 子元素 //a | //div #选择所有a元素和div元素 /.. #某元素的父节点 //*[@id='text']/.. #选择id为text的标签 的 父元素 /following:: #某元素的 后面的 兄弟节点 //*[@id='text']/following::div #选择id为text的标签 的 后面的 兄弟节点中的 所有div标签 /preceding-sibling:: #某元素的 前面的 兄弟节点 //*[@id='text']/preceding-sibling::* #选择id为text的标签 的 后面的 兄弟节点中的 所有标签

    模拟滑块

    ActionChains(broswer).click_and_hold(on_element = slider).perform() ActionChains(broswer).move_by_offset(xoffset=258, yoffset=0).perform() ActionChains(broswer).pause(0.5).release().perform()

     

    Processed: 0.009, SQL: 9