2021/5/23爬虫第四次周复盘

本文详细介绍了如何使用Selenium进行无界面模式的网页自动化操作,包括设置无头模式、爬取HTML数据、滚动条操作、翻页处理、页面等待、窗口管理和execute_script()函数的应用,为网页自动化提供了实用的模板和技巧。

一、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

五、设置页面等待

  1. time.sleep()
  2. 隐式等待:调用driver.implicitly_wait
  3. 显式等待:
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’)页面中 设置出发地、日期、查询按钮
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔记本IT

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值