文章目录
一、selenium设置无界面模式(模板)
options=webdriver.ChromeOptions()
options.add_argument('--headless')
driver=webdriver.Chrome(options=options)
二、selenium爬取数据
html、属性、文本
drvier.page_source 获取html结构的源码
# selenium提取数据的方式,是以页面最终渲染以后,以前端页面为基准的,和响应内容没有什么关系,即检查
drvier.find() 在html结构中查找某个字符串是否存在
drvier.get_attribute('src') 获取节点的属性值
drvier.text 获取节点的文本内容 (子子孙孙)
三、推动拖动条到最底下(模板)
# 进入这个页面的时候,把这个拖动条拖动一下,拖到最下面
# 0 是从去起始位置开始 document.body.scrollHeight 整个窗口的高度 模板!
driver.execute_script(
'window.scrollTo(0,document.body.scrollHeight)'
)
四、翻页的灵活处理(模板)
- 最后一页无“下一页”按钮
try:
# 找不到最后一页 就会抛出异常 此时就证明是最后一页了
driver.find_element_by_link_text('下一页').click()
except Exception as e:
driver.quit()
break
- 最后一页有“下一页”按钮,但检查 不一样
if self.driver.page_source.find('pn-next disable') == -1:
self.driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[1]/a[9]').click()
time.sleep(1)
else:
self.driver.quit()
break
五、设置页面等待
- time.sleep()
- 隐式等待:调用driver.implicitly_wait
- 显式等待:
WebDriverWait(driver,1000).until(
EC.text_to_be_present_in_element_value((By.ID,'fromStationText'),'北京')
)
六、打开多窗口和切换页面(模板)
driver.get('https://www.baidu.com/') #1
# driver.get('https://www.douban.com/')
# 单纯的打开了另一个窗口
driver.execute_script('window.open("https://www.douban.com/")') #2
time.sleep(1)
driver.switch_to_window(driver.window_handles[1])
七、execute_script()运用
- 拖动拖动条
- (‘https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc’)页面中 设置出发地、日期、查询按钮
本文详细介绍了如何使用Selenium进行无界面模式的网页自动化操作,包括设置无头模式、爬取HTML数据、滚动条操作、翻页处理、页面等待、窗口管理和execute_script()函数的应用,为网页自动化提供了实用的模板和技巧。
1万+

被折叠的 条评论
为什么被折叠?



