写在前面:
- 确实在需求面前去学习会比较有效果…硬记一条条语句不仅慢,,用的时候还要想“这为啥又不行…”
- 本来是想从知乎动手的…但是登陆都没做到emm…昨天还以为知乎很nb,selenium的反爬也太厉害了吧,然后做完这个之后才知道和人家没关系 只是因为自己啥也不会 是个憨憨…
代码
直接贴代码了,反正为了以后自己能看明白自己这毫无逻辑的代码,每一行都强行注释上了
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains #用于实现鼠标悬停,改变特定div的display
#内容以字符串格式写入文档
def strWrite(url,text):
try:
f=open(url,'a',encoding='utf-8')
f.write(text+'\n')
f.close()
except Exception as ex:
print('写入出错')
#程序开头selenium打开浏览器,找到包含所需内容的一些操作
def mainProgram():
driver.maximize_window()#当前窗口最大化
driver.get('http://www.baidu.com')#进入百度
kw = driver.find_element_by_id('kw')#通过id找到百度输入框
kw.send_keys('王者营地')#搜索关键字通过send_keys('')
su = driver.find_element_by_id('su')#通过id找到百度搜索按钮
su.click()#点击搜索按钮
time.sleep(2)#等待2s
wzyd = driver.find_element_by_link_text('《王者荣耀助手》正式升级为《王者营地》-王者荣耀官方网站-腾讯...')#通过标签内容文字找到王者营地的官网
wzyd.click()#点击王者营地官网
time.sleep(5)#等待5s
driver.switch_to.window(driver.window_handles[1]) # 因为点击官网进入新的标签页,此语句进入所有页面里下标为1的页面
yxzl = driver.find_element_by_css_selector('.main-nav > li:nth-child(2) > a')#在表头找到“游戏资料”
yxzl.click()#点击“游戏资料”
time.sleep(3)#等待3s
driver.switch_to.window(driver.window_handles[2]) # 因为点击游戏资料进入新的标签页,此语句进入所有页面里下标为2的页面
js = "var q=document.documentElement.scrollTop=900"#js语句 将页面右方拖动条拖动至距离顶部900px的位置
driver.execute_script(js)#webdriver执行上一条js语句
allHeroSkills()#开始读取全部英雄的技能信息!(和他们的背