python selenium模拟浏览器爬虫&交互动作

参考:https://www.cnblogs.com/zhaof/p/6953241.html
https://blog.csdn.net/One_of_them/article/details/82560880

  • 首先安装pip install selenium
  • 去网站https://sites.google.com/a/chromium.org/chromedriver/downloads选75,因为我的chrome版本就75,直接下载win32,然后最好放到项目中,然后把放到环境变量中,linux建议**/usr/local/bin**
  • 之后自己直接cmd执行下chromedriver看有反应吧
  • 这个模拟浏览器就好了,自己执行吧
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
import time

# 设置不跳chrome出来
chrome_opt = Options()  # 创建参数设置对象.
# chrome_opt.add_argument('--headless')   # 无界面化.
# chrome_opt.add_argument('--disable-gpu')    # 配合上面的无界面化.
# chrome_opt.add_argument('--window-size=1366,768')   # 设置窗口大小, 窗口大小会有影响.
# browser = webdriver.Chrome(chrome_options=chrome_opt)

browser = webdriver.Chrome(options=chrome_opt)
browser.get("http://www.jd.com")

# find1 = browser.find_element_by_id('q')
# find2 = browser.find_element_by_css_selector('#q')
# find3 = browser.find_element_by_xpath('//*[@id="q"]')
# find2 = browser.find_elements_by_css_selector('.service-bd li')

wait = WebDriverWait(browser, 2)  # 等个2秒
# 下面是进化版(搜索ipad)
# searchInput = browser.find_element(By.ID, 'key')
# searchButton = browser.find_element_by_class_name('button')# 对应着上面的那个方法
# 下面是超进化版
searchInput = wait.until(EC.presence_of_element_located((By.ID, 'key')))  # 等待这个元素加载好了(只获得一个)
searchInput.send_keys('ipad')
searchButton = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.button')))  # 等待这个按钮可以点了
searchButton.click()

time.sleep(2)
# print(browser.page_source)  # 这样是能获得到新页面的源码的
# print(browser.current_url)  # 当前页面的网址
# 下面两个都是根据条件筛选
# li = browser.find_elements_by_css_selector('.gl-warp li .p-name')
# li = browser.find_elements(By.CSS_SELECTOR, '.gl-warp li .p-name')
# 拉倒最底部和操作js
# browser.execute_script('window.scrollTo(0, document.body.scrollHeight)')
# browser.execute_script('alert("To Bottom")')
#获取图片的地址src属性
oneImg = browser.find_element_by_css_selector('.shop-logo a img')
# oneImg = oneImg.get_attribute('src')

print(oneImg)
# browser.get_screenshot_as_file('C:/foo.png')  # 当前页面截图
# brower.close()

mac版

因为之前版本是win的能实现,现在是mac遇到问题总结如下
phpstorm写pyhton不太方便,直接下载了pycharm用
在pycharm里将默认的2.7引擎改成了3.8,mac默认是2.7
下载了chromedriver后放到了/usr/local/bin里面后再执行

vi ~/.bash_profile
//然后添加如下一行
export PATH=$PATH:/usr/local/bin/chromedriver
// 执行生效
source ~/.bash_profile
// 本地测试
chromedriver --version

还是没找到然后我卸载了之前装的selenium,再重新安装了下

pip uninstall selenium
pip install selenium

最后成功
在这里插入图片描述

posted @ 2019-07-25 16:57  蜗牛使劲冲  阅读(2)  评论(0编辑  收藏  举报  来源