飞道的博客

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

236人阅读  评论(0)

内容:页面等待 + 切换页面 + 代理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日


转载:https://blog.csdn.net/weixin_42122125/article/details/105968426
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场