这几年做哪个网站致富,wordpress获取文章列表分页,wordpress 上传到七牛,广州网站建设圣矢前言#xff1a; 上一篇文章Python|爬虫和测试|selenium框架的安装和初步使用#xff08;一#xff09;_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用#xff0c;主要是打开某个网站的主页#xff0c;基本是最基础的东西#xff0c;那么#xff0c;…前言 上一篇文章Python|爬虫和测试|selenium框架的安装和初步使用一_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用主要是打开某个网站的主页基本是最基础的东西那么这篇文章里就写一点更加深入的东西吧。
主要是介绍比如selenium网页刷新模拟登录csdn元素定位等等内容
一
无头浏览器
什么是无头浏览器呢其实就是selenium后台启动一个浏览器该浏览器看不到以节约测试用机的资源。
options.add_argument(headless)主要是这个其次是截图截图保存在了d盘否则不知道是否确实运行了 #coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://www.csdn.net)
driver.get_screenshot_as_file(d:\\截图.png) 二
刷新页面
关闭无头以在前台观察是否确实刷新增加刷新代码主要是driver.refresh()方法
#coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
#options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://www.csdn.net)
time.sleep(2)driver.get_screenshot_as_file(d:\\截图.png)
try:# 刷新页面driver.refresh() print(刷新页面)
except Exception as e:print(刷新失败)
执行完毕后cmd的截图
表明确实刷新了页面 三
csdn首页输入框输入指定字符 #coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
#options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://www.csdn.net)
time.sleep(2)driver.get_screenshot_as_file(d:\\截图.png)
try:# 刷新页面driver.refresh() print(刷新页面)
except Exception as e:print(刷新失败)print(driver.page_source)
driver.find_element(By.XPATH,//*[idtoolbar-search-input]).send_keys(fuck)
运行结果如下 四
点击搜索
#coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
#options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://www.csdn.net)
time.sleep(2)driver.get_screenshot_as_file(d:\\截图.png)
try:# 刷新页面driver.refresh() print(刷新页面)
except Exception as e:print(刷新失败)print(driver.page_source)
driver.find_element(By.XPATH,//*[idtoolbar-search-input]).send_keys(fuck)
driver.find_element(By.XPATH,//*[idtoolbar-search-button]).click()
网页源代码内相关内容如下 运行结果如下
说我没有登录OK这就登录一下 五
selenium登录csdn
#coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
#options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://www.csdn.net)
time.sleep(2)driver.get_screenshot_as_file(d:\\截图.png)
try:# 刷新页面driver.refresh() print(刷新页面)
except Exception as e:print(刷新失败)print(driver.page_source)
driver.find_element(By.XPATH,//*[idtoolbar-search-input]).send_keys(fuck)
#driver.find_element(By.XPATH,//*[idtoolbar-search-button]).click()
logindriver.find_element(By.XPATH, //*[classtoolbar-btn-loginfun])
#logindriver.find_element_by_class_name(toolbar-btn-loginfun)
login.click()
网页源代码相关内容如下 运行效果如下 很显然在用户中心登录不是一个好主意因此我们更换为使用用户登录中心也就是更换网址为https://passport.csdn.net/login?codepublic%27
同时我们需要抓取这个网页的前端源代码登录相关的部分如下 /span/div/div div classpassport-maindiv classwelcome_tipsspan终于等到你/span img srchttps://csdnimg.cn/release/passport_fe/assets/images/wel_tips.5624828.png/div div data-v-c8607eae classlogin-boxdiv data-v-c8607eae classlogin-box-topdiv data-v-c8607eae classlogin-box-tabsdiv data-v-c8607eae classlogin-box-tabs-itemsspan data-v-c8607eae idlast-login classlast-login-way styledisplay: none;上次登录/span !---- span data-v-c8607eae class微信登录/span !---- span data-v-c8607eae class免密登录/span span data-v-c8607eae classtabs-active密码登录/span/div div data-v-c8607eae classlogin-box-tabs-main!---- div data-v-e5be92b8 data-v-c8607eae classlogin-formdiv data-v-e5be92b8 classlogin-form-itemdiv data-v-4cb3a723 data-v-e5be92b8 classbase-inputinput data-v-4cb3a723 autocompleteusername placeholder手机号/邮箱/用户名 typetext classbase-input-text span data-v-4cb3a723 classbase-input-icon base-input-icon-clear styledisplay: none;/span !---- !----/div/div div data-v-e5be92b8 classlogin-form-itemdiv data-v-4cb3a723 data-v-e5be92b8 classbase-input!---- input data-v-4cb3a723 autocompletecurrent-password placeholder密码 typepassword classbase-input-text stylewidth: calc(100% - 16px); !---- span data-v-4cb3a723 classbase-input-icon base-input-icon-password/span !----/div/div div data-v-e5be92b8 classlogin-form-item-tipsspan data-v-e5be92b8 classlogin-form-error styledisplay: none;/span a data-v-e5be92b8 target_blank data-report-click{quot;spmquot;: quot;3001.6552quot;} hrefhttps://passport.csdn.net/forget classlogin-form-link忘记密码 /a/div div data-v-e5be92b8 classlogin-form-itembutton data-v-23f9b684 data-v-e5be92b8 disableddisabled classbase-button登录/button/div/div/div/div 根据以上内容得出如下登录代码
###注placeholder手机号/邮箱/用户名 和 placeholder密码 以及classbase-button 是关键的定位元素 #coddingutf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options Options()
options.binary_location C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe
options.add_experimental_option(detach, True)
#options.add_argument(headless)
pathService(f:\\chromedriver.exe)
driver webdriver.Chrome(optionsoptions,servicepath)
# 截图预览driver.get(https://passport.csdn.net/login?codepublic%27)
time.sleep(2)driver.get_screenshot_as_file(d:\\截图.png)
try:# 刷新页面driver.refresh() print(刷新页面)
except Exception as e:print(刷新失败)#print(driver.page_source)
#选择密码登录方式
login driver.find_element(xpath,//span[contains(text(),密码登录)])
time.sleep(2)
login.click()
print(driver.page_source)
#输入用户名
driver.find_element(By.XPATH,//*[placeholder手机号/邮箱/用户名]).send_keys(自己的用户名)
#输入密码
driver.find_element(By.XPATH,//*[placeholder密码]).send_keys(自己的密码)
#点击登录
time.sleep(5)
driver.find_element(By.XPATH,//*[classbase-button]).click()
OK就这么简简单单的可以登录csdn了不过需要注意账号不能有异常否则会出验证码就登录不了了。