|
一.内容简介python调用chrome实现网页自动操作。二.软件环境2.1vsCode2.2Anacondaversion:conda22.9.02.3代码链接:三.主要流程3.1下载驱动和插件调用谷歌浏览器,需要下载浏览器驱动(https://registry.npmmirror.com/binary.html?path=chromedriver/),下载对应的版本,最新的里面没有,网上找一下就可以了,谷歌或者csdn,就安装一下插件,不能用了在下载驱动就好了,测试好像不需要驱动然后安装selenium!pipinstallselenium!pipinstallpyautogui12安装成功3.2调用谷歌浏览器这个驱动没有路径,好像也可以运行,我只指定了网址,浏览的exe路径,就没了fromseleniumimportwebdriverurl='https://www.wjx.cn/vm/ev6IfcA.aspx'options=webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches',['enable-automation'])options.add_experimental_option('useAutomationExtension',False)#谷歌浏览器exe位置options.binary_location=r"C:\ProgramFiles\Google\Chrome\Application\chrome.exe"#是否要启动页面#options.add_argument("--headless")#启用无头模式#GPU加速有时候会出bugoptions.add_argument("--disable-gpu")#禁用GPU加速options.add_argument("--disable-blink-features=AutomationControlled")driver=webdriver.Chrome(options=options)driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source':'Object.defineProperty(navigator,"webdriver",{get)=>undefined})'})#启动要填写的地址,这就启动浏览器driver.get(url)#这是关闭浏览器#等待页面加载,可以根据实际情况调整等待时间driver.implicitly_wait(10)#获取完整页面结构full_page_content=driver.page_source#关闭浏览器driver.quit()1234567891011121314151617181920212223242526启动成功3.3进行网页操作需要注意的就是,然后就是按自己的需求写就好了,有啥其他用到的,以后再补充,现在就用到这一个#两个功能一致,使用这个代码找到对应的代码,click()即可,和js基本类似,只是部分语法不一样#python里面的写sinPro=driver.find_elements(By.CSS_SELECTOR,f'.jqradio')#js里面的document.querySelectorAll(".jqradio")12345#引入相关模块fromselenium.webdriver.common.byimportByfromseleniumimportwebdriver#随机数产生importrandom#延时importtimeimportpyautogui#单选题defsingle(driver):#假设有10个单选题forjinrange(1,18):#每个单选题所在的位置sinPro=driver.find_elements(By.CSS_SELECTOR,f'#div{j}')#每个单选题的答案进行遍历foranswerinsinPro:#对应每个单选题的选项组合ansItem=answer.find_elements(By.CSS_SELECTOR,'.ui-radio')ifansItem:random.choice(ansItem).click()else:ansItem=answer.find_elements(By.CSS_SELECTOR,'.ui-checkbox')selected_items=random.sample(ansItem,random.randint(2,4))#选择两个不重复的元素foriteminselected_items:item.click()#答题时间间隔time.sleep(random.randint(0,1)/2)#脚本执行方法deflaunch(nums):foriinrange(0,nums):url_survey='https://www.wjx.cn/vm/ev6IfcA.aspx'options=webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches',['enable-automation'])options.add_experimental_option('useAutomationExtension',False)options.binary_location=r"C:\ProgramFiles\Google\Chrome\Application\chrome.exe"#options.add_argument("--headless")#启用无头模式options.add_argument("--disable-gpu")#禁用GPU加速options.add_argument("--disable-blink-features=AutomationControlled")driver=webdriver.Chrome(options=options)driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',{'source':'Object.defineProperty(navigator,"webdriver",{get)=>undefined})'})#启动要填写的地址driver.get(url_survey)#填写选择题#single(driver)##提交按钮#end=driver.find_elements(By.CSS_SELECTOR,f'#ctlNext')#end[0].click()#提交按钮time.sleep(4)print('已经提交了{}次问卷'.format(int(i)+int(1)))driver.quit()#停止if__name__=="__main__":#填写问卷次数launch(4000)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960结果如图四.参考【python】自动填写问卷星问卷及提交http://t.csdnimg.cn/aifYa还有一个找不到了,看到了,可以联系我
|
|