python下初步使用selenium/phantomeJS问题总结

来源:互联网 发布:美容院系统易语言源码 编辑:程序博客网 时间:2024/06/01 13:18


想做个网页爬虫工具,由于网页的JS脚本解析比较麻烦,试用了selenium+phantomJS的方式,方便很多,总结下使用过程中遇到的几个问题;
selenium可以调用浏览器工具进行网页的访问,而phantomJS可以看做一个没有界面的、后台运行的浏览器,而且可以解析JS脚本;

1、基本使用方式
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path='...')
driver.set_page_load_timeout(10)
driver.get(url)

#获取网页元素的方式
driver.find_element_by_id('...')
driver.find_element_by_csss_selector('...')
driver.find_element_by_tag_name('...')
driver.find_elements_by_xpath('...')

driver.quit()


2、executable_patch设置的问题
--需要设置phantomJS执行文件的问题,路径中需要使用/,而使用\方式时出错;


3、使用driver.get(url)概率一直不返回的问题
--应该是默认加载网页超时设置为无限值导致;
--driver.set_page_load_timeout(10),即将加载网页超时设置为10s;


4、不能使用print打印中文的问题
--由于使用Notepad编写脚本时,默认使用的是ANSI格式编码;
--将编码方式修改为UTF-8编码方式解决;


5、关于对齐问题
由于python的代码块是靠空格对齐来划分的,如果不对齐将出现结果问题;
在使用notepad++编辑,可以设置:
--菜单栏->视图 -> 显示符号 -> 显示空格与制表符,这样可以看到空格符的显示信息;
--菜单栏->设置- > 首选项- > 语言- > Replace by space,并且可以设置Tab size的大小;


6、网页table的访问

--访问网页的table中某项时,网上很多都使用by xpath的方式,觉得比较麻烦;

--后来发现只要采用by id的方式就能够取到整个table的信息,然后再采用re模块的方法进行处理即可。

0 0