Selenium使用笔记

05. April 2019 Python 0
1.导入要使用的库 from selenium import webdriverfrom selenium.webdriver.common.proxy import Proxy, ProxyType 2.设置代理 options = webdriver.ChromeOptions()proxy = Proxy()//设置手动代理模式proxy.proxyType = ProxyType.MANUAL//不自动坚持web代理proxy.autodetect = False//设置本地代理地址proxy.httpProxy = proxy.sslProxy = proxy.socksProxy = \"127.0.0.1:1080\"options.Proxy = proxyoptions.add_argument(\"ignore-certificate-errors\")//设置浏览器无界面模式options.add_argument(\'--headless\')driver = webdriver.Chrome(chrome_options=options, driver.set_window_size(1200, 800)executable_path=\"./chromedriver\") 3.获取节点组 overview_urls = driver.find_elements_by_xpath(\'//*[@id=\"wrapper\"]/div[1]/div[2]/div[1]/div[2]/div/div/a\')for show_page in overview_urls: url = show_page.get_attribute(\"href\") 4.ElementNotVisibleException异常原因 页响应时间慢,添加driver.implicitly_wait(10) 定位有问题,在chrome中验证,xpath可使用XPath Helper 定位条件不唯一,如class中含有复合类 检测该元素以及父级元素是否为不可见 visibility是否为hidden display是否为none opacity是否为0 height和width是否都大于0 是否有相同的元素

sqlite3安装,重新编译python

23. May 2018 Python 0
基本上大多数linux系统都预先安装sqlite3,不过也有未安装的,比如我使用的那个服务器就没安装,只能手动安装然后再重新编译下python了 wget http://www.sqlite.org/snapshot/sqlite-snapshot-201805181758.tar.gz tar -zxvf sqlite-snapshot-201805181758.tar.gz cd sqlite-snapshot-201805181758 .configure --prefix=/usr/local make && make install sqlite3安装成功后,在控制台输入sqlite3 可进入,测试是否成功。 python需要重装或重新编译,若重新编译,则查看python软件包下setup.py文件 查找到sqlite_inc_paths,查看是否包含你指定或默认安装sqlite3的路径,上面把sqlite3 安装到了/usr/local中,则在sqlite_inc_paths添加 /usr/local/sqlite3/include 然后在python包根目录执行 .configure make && make install 完成后,在控制台测试是否可导入成功: python >>import sqlite3 然后就可以使用了 import sqlite3 conn = sqlite3.connect(\'file.db\', check_same_thread=False) c = conn.cursor() def insert(url): hasfile = c.execute(\"select * from file where url=\'{fileUrl}\'\".format(fileUrl=url)) if hasfile.fetchone(): pass else: c.execute(\"insert ...

flask,uwsgi,nginx安装调试步骤

23. May 2018 Python 0
刚开始学flask时,跑在服务器上,各种问题,记录下排除故障的步骤,一步步来,可快速发现问题 一:安装好flask后,导入包后,main.py文件如下: from flask import Flask from flask import render_template from flask import request from flask_cors import * //允许跨域请求的包 app=Flask(__name__) CORS(app,supports_credentials=True) @app.route(\'/\') def index(): return render_template(\'file.html\') //在templates文件下建file.html文件,填写一下内容 if __name__ == \'__main__\': app.run() 然后在项目文件夹下运行: python main.py //main.py 为我创建的文件,内容如上。若有错误,在控制台就能看到,排除掉代码问题 二:uwsgi安装配置 ①安装好uwsgi后,先在控制台使用uwsgi跑flask uwsgi --http :9090 --wsgi-file main.py //若有错误,亦可在控制台发现,若无错误,可使用浏览器访问下http://127.0.0.1:9090,错误也可能在访问过程中产生。 若服务器无桌面环境,在控制台执行 curl http://127.0.0.1:9090,若执行成功,则返回file.html中的内容。 ②接下来将uwsgi放在web服务器nginx后,使用uwsgi协议,众多配置项放到一个文件中 在etc下创建了uwsgi.ini文件,内容如下: [uwsgi] socket = 127.0.0.1:9090 chdir ...

uwsgi 服务器停止,重启

23. May 2018 Python 0
停止uwsgi服务器 方式1: ps -aux|grep uwsgi //获取uwsgi进程ID kill -HUP pid //pid即获得的进程ID 方式2:知道uwsgi自定义配置的pid文件的位置 cat /tmp/uwsgi.pid kill -HUP pid //pid即获得的进程ID 方式3:把方式2合并到一起 kill -HUP `cat /tmp/uwsgi.pid` //注意命令中是反引号,并非单引号。 启动uwsgi服务器 uwsgi /etc/uwsgi.ini //第二项为uwsgi初始化文件 uwsgi.ini 初始化文件内容 [uwsgi] socket = 127.0.0.1:9090 chdir = /var/www/project/metadata/ wsgi-file=main.py threads = 4 reload-mercy = 10 vacuum = true max-requests = 1000 limit-as = 512 buffer-size = 30000 ...