欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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 页面等待

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程
11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

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)

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

2 切换页面

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

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') #  截图

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

出现data:,标签的原因暂不清楚。

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

3 代理IP

11.4 Selenium+Chromedriver获取动态数据--scrapy爬虫初学者学习过程

# 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日

相关标签: scrapy爬虫