from selenium import webdriver
#将selenium模块导进来
import time

#导入time模块,以便之后爬虫等待
driver=webdriver.PhantomJS()
#引用PhantomJS
driver.set_window_size(1920,1080)
#设置PhantomJS窗口大小,由于没有实体界面,以是大小随便设
driver.get(\"大众http://lovecrazy.cn\"大众)
#输入要爬的网站地址
driver.find_element_by_id(\"大众ls_username\公众).send_keys(\"大众测试\"大众)
driver.find_element_by_id(\"大众ls_password\"大众).send_keys(\"大众ceshi123\"大众)
driver.find_element_by_xpath(\"大众//[@id='lsform']/div/div/table/tbody/tr[2]/td[3]/button\"大众).click()
#以上三行做了输入账号密码及点击事宜。find_element_by_id()先获取元素输入的位置,send_keys()中写要输入的内容。探求位置的几种方法后面详细讲。
time.sleep(2)//加载新页面须要韶光,让浏览器先喘口气,这里暂且让它缓2秒
data=driver.find_element_by_xpath(\"大众//[@id='g_upmine']\"大众).text
print(data)
#以上两行只是个测试,显示登录成功后的用户组。
获取元素的方法下面讲一下怎么获取须要点击或爬取的元素。这里只说一下万能方法:
笔者采取Chrome内核的浏览器。谷歌浏览器,QQ浏览器,360浏览器都可以。打开网页后Wndows操作系统按F12,Mac则按option+command+c,也可依次右键,检讨。点击新增界面左上角的鼠标箭头,再点击网页上要查找的元素,右键加深代码,依次选择Copy,Copy XPATH,末了将代码粘贴到driver.find_element_by_xpath(\"大众\公众)括号中即可(别忘可把贴进来代码里的双引号改成单引号,否则会报错。
非万能方法耗韶光,一样平常须要查找元素的id,class等标签,这里不推举。
坑这里有个坑,你在网页点开一个链接后会创造获取不到新页面的数据。这是由于如果点击后打开了新窗口,程序获取的还是老窗口的内容,这里只需加一行driver.switch_to.window(driver.window_handles[1]),方括号中可填0,1和-1。0代表第一个窗口,1代表末了一个窗口,-1为当前显示的窗口。
快结束了末了说一下获取爬的内容,实在很大略,只需在driver.find_element_by_xpath(\公众\公众)加.text或.value即可。(print就不用我说了,地球人都知道)
由于事情须要笔者采取PhantomJS+Selenium,但是读者若运行我的代码会创造,python给出一行警告(可忽略),大意是PhantomJS已经被开放商放弃了,请用其他无界面浏览器。这次利用这个插件也是考试测验,实在无头浏览器大同小异,学会PhantomJS再利用其他浏览器已是得心应手了。后期如果有机会我会更新Chrome无头版的爬虫办法。
THE END