11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程
程序员文章站
2024-03-24 09:16:10
...
内容:页面等待 + 切换页面 + 代理IP
作者:Irain
QQ:2573396010
微信:18802080892
GitHub项目链接:https://github.com/Irain-LUO/Scrapy_Study.
视频资源链接:https://www.bilibili.com/video/BV1P4411f7rP?p=64
1 页面等待
1.1 示例:隐式等待 + 显示等待
## 6 Selenium-Ajax.py
from selenium import webdriver
driber_path = r'D:\Information\Working\pycharm\ChromeDriver\chromedriver.exe'# Chromedriver的绝对路径
driver = webdriver.Chrome(executable_path=driber_path)# 初始化一个driver驱动,并且制定Chromedriver的路径
driver.get("https://www.baidu.com")# 请求网页
# ================= 隐式等待 ========================
driver.implicitly_wait(10) # 等待10秒
element = driver.find_element_by_id('kw')
print('='*100)
print(element)
# ================= 显示等待 ========================
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
element = WebDriverWait(driver,10).until( # 等待10秒
EC.presence_of_all_elements_located((By.ID,'su'))
)
print('='*100)
print(element)
2 切换页面
2.1 示例:新标签页 + 页面切换 + WebElement
## 7 Selenium-Windows.py
from selenium import webdriver
driber_path = r'D:\Information\Working\pycharm\ChromeDriver\chromedriver.exe'# Chromedriver的绝对路径
driver = webdriver.Chrome(executable_path=driber_path)# 初始化一个driver驱动,并且制定Chromedriver的路径
driver.get("https://www.baidu.com")# 请求网页
# ================= 新标签页打开豆瓣网址 ========================
driver.execute_script("window.open('https://www.douban.com/')") # 新标签页打开豆瓣网址
print(driver.current_url) # 当前url
print(driver.window_handles) # 窗口中所有的标签页url
# ================= 标签页切换 ========================
driver.switch_to.window(driver.window_handles[2]) # 跳转到豆瓣标签页
print(driver.current_url) # 当前url
# ================= WebElement ========================
DownloadB = driver.find_element_by_class_name('lnk-app') # 获取下载豆瓣APP元素
print(type(DownloadB)) # 查看类型WebElement
print(DownloadB.get_attribute('href')) # 获取下载豆瓣的链接
driver.save_screenshot('douban.png') # 截图
出现data:,标签的原因暂不清楚。
3 代理IP
# 8 Selenium-IP.py
# ================= 代理IP ========================
from selenium import webdriver
driber_path = r'D:\Information\Working\pycharm\ChromeDriver\chromedriver.exe'# Chromedriver的绝对路径
options = webdriver.ChromeOptions()
options.add_argument("--proxy-server=http://163.204.247.186:9999") # 添加代理IP
driver = webdriver.Chrome(executable_path=driber_path, chrome_options=options)# 初始化一个driver驱动,设置代理IP
driver.get("http://httpbin.org/ip")# 查看代理IP
由于大部分代理IP都是无效的,所有不在这里用图片演示。
代理IP网址:https://www.kuaidaili.com/free/
https://www.xicidaili.com/nn/1
发布:2020年5月7日