引言:
项目在扒取淘宝网上商品的过程中遇到一个问题:淘宝商品界面的url信息是动态生成的,直接使用传统的urllib+re看来是无法得到我想要的东西.本来想换一个电商网站来扒取,但是想到以后还可能会遇到类似的要处理动态页面的场景,所以还是来研究一下怎么来写一个能够解析javascripe的spider.在网上查阅了大部分资料后,听说selenium这个原本用来做web自动测试的工具很强大的样子,好吧,那就先搭建一个环境来用用这个吧。
1.Selenium下载Selenium2.48.2 这里得到是一个jar包,里面存放所谓的Selenium Serve.每次使用Selenium时都要打开之.
假设把这个文件存放在/home/user/Downloads/下,
那么输入
cd /home/jmh081701/Downloads
java -jar selenium-server-standalone-2.48.2.jar
jmh081701就是用户名
当然为了以后的方便,你也可以在/home目录下建一个shell脚本
gedit //打开编辑器
在编辑器输入:
#!/bin/sh
cd /home/jmh081701/Downloads
java -jar selenium-server-standalone-2.48.2.jar
然后保存成一个合适的名字就ok了,比如selenium_open;
下次要启动时,只需要在终端的默认目录(/home/用户名)下输入
chmod +x selenium_open
./selenium_open
就ok啦
2.安装python3.4的selenium库.
A:下载python selenium
B:下载setuptools,用于安装selenium
C:解压好刚刚下载的两个文件,假设也都放在/home/username[用户名]/Downloads/下.
D:切换到解压目录cd /home/jmh081701[用户名]/Downloads/
先安装setuptools
cd setuptools-14.3
sudo python3.4 setup.py install
注意这里要使用root权限才能安装成功
再 安装selenium
cd .. //返回到上一层目录
cd selenium-2.45.0
sudo python3.4 setup.py install
此时已经安装成功.
测试一发:使用浏览器打开Baidu并搜索China
__author__ = 'jmh081701'
from selenium import webdriver from selenium.webdriver.common.keys import Keys;
if __name__ == '__main__':
brower = webdriver.Firefox();
brower.get("http://www.baidu.com");
# assert 'Baidu' in brower.title
elem = brower.find_element_by_name("wd");
elem.send_keys("China"+Keys.RETURN);
brower.quit();
注:如果linux下没有安装python3.4
则在终端输入:
sudo apt-get install python3.4
PyCharm简直太好用,推荐一发:
PyCharm下载
解压,安装,在终端输入:假设将文件下载并解压在/home/jmh081701/Downloads下
cd /home/jmh081701/Downloads/pycharm-4.5.4/bin
./pycharm.sh
输入注册码:注册码
这样pycharm就安装好了,然后就可以愉快地写python啦.当然你也可以像上面一样为这个pycharm建一个shell脚本方便下一次运行
#!/bin/sh
cd cd /home/jmh081701/Downloads/pycharm-4.5.4/bin
./pycharm.sh
把这个文件保存在/home/jmh081701[用户名]下面,就可以很方便地调用了.