收集到的 pyton 脚本爬虫 案例

文章介绍了如何在Selenium中使用ChromeDriver进行网页自动化测试,包括设置代理、替换User-Agent、启用无界面模式,以及实现页面等待、隐式等待、执行JS代码、处理Iframe内容和标签页切换的技术细节。
摘要由CSDN通过智能技术生成


'''
*********************
****此次文件全是案例,根據需要提取相應的 那個代碼
*********************
'''
from selenium import webdriver
import time
  
def a():
    b=webdriver.Chrome()
    b.get('https://www.baidu.com/')
    time.sleep(3)
    b.quit()
  
if __name__=='__main__':
    a()
    
    
  '''selenium 使用代理'''
from selenium import webdriver
 
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument('--proxy-server=http://ip:端口') # 使用代理ip
 
driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象
 
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()


  '''selenium 替換user-agent'''
from selenium import webdriver
 
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument('--user-agent=Mozilla/5.0 HAHA') # 替换User-Agent
 
driver = webdriver.Chrome('./chromedriver', chrome_options=options)
 
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()
 
 
 
  '''selenium  無界面模式'''
from selenium import webdriver
 
options = webdriver.ChromeOptions() # 创建一个配置对象
options.add_argument("--headless") # 开启无界面模式
options.add_argument("--disable-gpu") # 禁用gpu
 
# options.set_headles() # 无界面模式的另外一种开启方式
driver = webdriver.Chrome(chrome_options=options) # 实例化带有配置的driver对象
 
driver.get('https://movie.douban.com/')
print(driver.title)
driver.quit()



  '''手动实现页面等待'''
import time
from selenium import webdriver
driver = webdriver.Chrome('/home/worker/Desktop/driver/chromedriver')
 
driver.get('https://www.taobao.com/')
time.sleep(1)
 
# i = 0
# while True:
for i in range(10):
    i += 1
    try:
        time.sleep(3)
        element = driver.find_element_by_xpath('//div[@class="shop-inner"]/h3[1]/a')
        print(element.get_attribute('href'))
        break
    except:
        js = 'window.scrollTo(0, {})'.format(i*500) # js语句
        driver.execute_script(js) # 执行js的方法
driver.quit()



''' 隱式等待'''
from selenium import webdriver
 
driver = webdriver.Chrome()  
 
driver.implicitly_wait(10) # 隐式等待,最长等20秒  
 
driver.get('https://www.baidu.com')
 
driver.find_element_by_xpath()



 '''selenium  控制瀏覽器執行js 代碼'''
import time
from selenium import webdriver
 
driver = webdriver.Chrome()
driver.get("https://movie.douban.com/")
time.sleep(1)
 
js = 'window.scrollTo(0,document.body.scrollHeight)' # js语句
driver.execute_script(js) # 执行js的方法
 
time.sleep(3)
driver.quit()


''' selenium 獲取頁面内ifream 内的内容 '''
#switch_to切换frame标签
#iframe是html中常用的一种技术,即一个页面中嵌套了另一个网页,selenium默认是访问不了frame中的内容的,
#对应的解决思路是driver.switch_to.frame(frame_element) 

#示例:
import time
from selenium import webdriver
driver = webdriver.Chrome()
url = 'https://mail.qq.com/cgi-bin/loginpage'
driver.get(url)
time.sleep(2)
login_frame = driver.find_element_by_id('login_frame') # 根据id定位 frame元素
driver.switch_to.frame(login_frame) # 转向到该frame中
 
driver.find_element_by_xpath('//*[@id="u"]').send_keys('账号@qq.com')
time.sleep(2)
 
driver.find_element_by_xpath('//*[@id="p"]').send_keys('密码')
time.sleep(2)
 
driver.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(2)
 
"""操作frame外边的元素需要切换出去"""
windows = driver.window_handles
driver.switch_to.window(windows[0])
 
content = driver.find_element_by_class_name('login_pictures_title').text
print(content)
 
driver.quit()





'''selenium标签页的切换 '''

#获取所有标签页的窗口句柄
#利用窗口句柄字切换到句柄指向的标签页

#这里的窗口句柄是指:指向标签页对象的标识

#具体的方法:

# 1. 获取当前所有的标签页的句柄构成的列表
current_windows = driver.window_handles
 
# 2. 根据标签页句柄列表索引下标进行切换
driver.switch_to.window(current_windows[0])
 示例:

import time
from selenium import webdriver
 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
 
time.sleep(1)
driver.find_element_by_id('kw').send_keys('python')
time.sleep(1)
driver.find_element_by_id('su').click()
time.sleep(1)
 
# 通过执行js来新开一个标签页
js = 'window.open("https://www.sogou.com");'
driver.execute_script(js)
time.sleep(1)
 
# 1. 获取当前所有的窗口
windows = driver.window_handles
 
time.sleep(2)
# 2. 根据窗口索引进行切换
driver.switch_to.window(windows[0])
time.sleep(2)
driver.switch_to.window(windows[1])
 
time.sleep(6)
driver.quit()

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值