码迷,mamicode.com
首页 > 编程语言 > 详细

前几天买了云服务器,这几天安装个python3环境,跑个selenium

时间:2020-07-13 11:16:12      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:default   shm   按键   拼接   app   键盘   ext   ble   就是   

 

1 一个结合文件发送,命令行,监控一体化的链接工具支持跨平台      http://www.hostbuf.com/?install_fs

按照顺序双击即可

技术图片

 

 

 

2 命令行安装python(root身份),命令完全兼容centos7.6  https://www.linuxidc.com/Linux/2018-07/153286.htm

 

3 安装虚拟环境,此处有些小插曲,记录如下

安装虚拟机必要环境

可以先更新下pip

pip install --upgrade pip

sudo pip install virtualenv

sudo pip install virtualenvwrapper

安装结束就启动虚拟环境(如果不行可以重复操作)

source virtualenvwrapper.sh

创建虚拟环境(py3_flask是虚拟环境名字)

mkvirtualenv -p python3 py3_flask

查看虚拟环境(可用tab按钮,快捷方便)

workon py3_flask

退出虚拟环境

deactivate

删除虚拟环境(先退出才能删除)

rmvirtualenv py3_flask

查看虚拟环境新安装的包

pip freeze

 

4 这几天用本地软件跑selenium,网络不稳定,我都忘了我还有个云主机闲着。今天部署下

  安装chrome

  yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

  查看版本

  在上面有 83.0.4103.116-1    

  下载chromedriver找对应版本        https://npm.taobao.org/mirrors/chromedriver/

  wget http://npm.taobao.org/mirrors/chromedriver/83.0.4103.39/chromedriver_linux64.zip

  

  将下载的文件解压,放在如下位置
  unzip chromedriver_linux64.zip
  mv chromedriver /usr/bin/
  赋予权限

  chmod +x /home/mysoft/spyder/chromedriver

  

  编辑py文件  此处给出一个可以正常运行的文件示例

  

#! /usr/bin/python3

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()

# 不加载图片,加快访问速度
chrome_options.add_experimental_option("prefs", {"profile.mamaged_default_content_settings.images": 2})

# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
chrome_options.add_experimental_option(‘excludeSwitches‘, [‘enable-automation‘])

chrome_options.add_argument(‘--headless‘)
chrome_options.add_argument(‘--no-sandbox‘)
chrome_options.add_argument(‘--disable-gpu‘)
chrome_options.add_argument(‘--disable-dev-shm-usage‘)
browser = webdriver.Chrome(options=chrome_options)
url = "https://www.baidu.com/"
browser.get(url)
html = browser.find_element_by_xpath("//*").get_attribute("outerHTML")
print(html)
print("-----------------------------------")

  

记录几个报错

chrome not run,,,,,, 可能是chromeoption设置不好,参照以上代码

 No such file or directory   xxxx   可能是没有权限 chmod u+x xxxx

如果还有其他不可描述的错误。比如语法没错,但是就是通不过,可能是python缩进有问题,花费两三分钟统一下格式

 查看正在运行的python程序  ps -ef | grep python

找到进程id 杀死进程      kill -9 4394

 

selenium的键盘按键的正确用法   https://www.jianshu.com/p/56e1295b031f  

eg:driver.find_element_by_id(‘DomainName‘).send_keys("{ENTER}")

 

------------恢复内容开始------------

 

1 一个结合文件发送,命令行,监控一体化的链接工具支持跨平台      http://www.hostbuf.com/?install_fs

按照顺序双击即可

技术图片

 

 

 

2 命令行安装python(root身份),命令完全兼容centos7.6  https://www.linuxidc.com/Linux/2018-07/153286.htm

 

3 安装虚拟环境,此处有些小插曲,记录如下

安装虚拟机必要环境

可以先更新下pip

pip install --upgrade pip

sudo pip install virtualenv

sudo pip install virtualenvwrapper

安装结束就启动虚拟环境(如果不行可以重复操作)

source virtualenvwrapper.sh

创建虚拟环境(py3_flask是虚拟环境名字)

mkvirtualenv -p python3 py3_flask

查看虚拟环境(可用tab按钮,快捷方便)

workon py3_flask

退出虚拟环境

deactivate

删除虚拟环境(先退出才能删除)

rmvirtualenv py3_flask

查看虚拟环境新安装的包

pip freeze

 

4 这几天用本地软件跑selenium,网络不稳定,我都忘了我还有个云主机闲着。今天部署下

  安装chrome

  yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

  查看版本

  在上面有 83.0.4103.116-1    

  下载chromedriver找对应版本        https://npm.taobao.org/mirrors/chromedriver/

  wget http://npm.taobao.org/mirrors/chromedriver/83.0.4103.39/chromedriver_linux64.zip

  

  将下载的文件解压,放在如下位置
  unzip chromedriver_linux64.zip
  mv chromedriver /usr/bin/
  赋予权限

  chmod +x /home/mysoft/spyder/chromedriver

  

  编辑py文件  此处给出一个可以正常运行的文件示例

  

#! /usr/bin/python3

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()

# 不加载图片,加快访问速度
chrome_options.add_experimental_option("prefs", {"profile.mamaged_default_content_settings.images": 2})

# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
chrome_options.add_experimental_option(‘excludeSwitches‘, [‘enable-automation‘])

chrome_options.add_argument(‘--headless‘)
chrome_options.add_argument(‘--no-sandbox‘)
chrome_options.add_argument(‘--disable-gpu‘)
chrome_options.add_argument(‘--disable-dev-shm-usage‘)
browser = webdriver.Chrome(options=chrome_options)
url = "https://www.baidu.com/"
browser.get(url)
html = browser.find_element_by_xpath("//*").get_attribute("outerHTML")
print(html)
print("-----------------------------------")

  

记录几个报错

chrome not run,,,,,, 可能是chromeoption设置不好,参照以上代码

 No such file or directory   xxxx   可能是没有权限 chmod u+x xxxx

如果还有其他不可描述的错误。比如语法没错,但是就是通不过,可能是python缩进有问题,花费两三分钟统一下格式

 查看正在运行的python程序  ps -ef | grep python

找到进程id 杀死进程      kill -9 4394

 

selenium的键盘按键的正确用法   https://www.jianshu.com/p/56e1295b031f  

eg:driver.find_element_by_id(‘DomainName‘).send_keys("{ENTER}")

 记录几个xpath的操作

    driver.find_element_by_id(‘DomainName‘).clear()
time.sleep(0.2 * random.random())
driver.find_element_by_id(‘DomainName‘).send_keys("%s.com\n" % (li))
driver.find_element_by_id(‘DomainName‘).send_keys("{ENTER}")

WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, ‘search-write-btn‘)))
# tag_element = driver.find_element_by_class_name(‘search-write-btn‘)
# ActionChains(driver).move_to_element(tag_element).perform().click()
time.sleep(0.5 + 0.2 * random.random())
# driver.find_element_by_class_name(‘search-write-btn‘).click()
# js ="document.getElementByClass(‘search-write-btn‘).click()"  # js点击元素
# driver.execute_script(js)

# 显示等待知道元素出现
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, ‘search-write-btn‘)))
html = driver.find_element_by_xpath("//*").get_attribute("outerHTML")

write_to_html(str(i),html)
result = driver.find_element_by_xpath("//*[contains(text(), ‘未被注册‘)]") 

 

记录几个刷新界面的方法 https://www.cnblogs.com/MasterMonkInTemple/p/4097512.html

在linux编程中,如果文件中用到当前目录,则应该cd   到指定目录下,不然程序会报路径找不到错误,另一种解决方式是在程序中获取当前路径,然后拼接

python中出现invalid syntax报错的几种原因

缩进不对,或者符号错误(某些无法描述的错误就是缩进不对)

目前还有一个奇葩错误 

list‘ object has no attribute ‘get‘

问题是我用的是drivert.get(url)  并不是获取elements元素导致的错误,

解决方法:将except中异常处理的代码(driver.get(url))想办法放到try中。

某次点击按钮无法使用,解决办法:在输入框后面拼接字符串"\n"          不知为何,在win中运行很好,但是在linux下各种报错。

 

注意下try except用法,注意可能是哪个地方出错了,

注意只对绝对有异常的地方进行try 。。。。except  pass。。。。。。。可以选择什么也不处理

(比如某元素找不到,程序会报异常进而终止运行,这时候必须try上,保证程序整体运行)

注意如果有需要,可多层嵌套try except 对于不同层侧的异常区别对待

注意  if a and b:pass else: 与  if a:  if b:pass  (a)else: 是不一样的

注意 如果比较某字符串相等,从字面看绝对没有不一样的,但是就是不相等,可能是utf8自动加载的字符bom等,处理方式编码方式修改为utf8-mas,或者,首行空一行

 

前几天买了云服务器,这几天安装个python3环境,跑个selenium

标签:default   shm   按键   拼接   app   键盘   ext   ble   就是   

原文地址:https://www.cnblogs.com/RYSBlog/p/13291928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!