from selenium import webdriver from scrapy.selector import Selector#模拟登陆 browser = webdriver.Chrome(executable_path='Chromedriver.exe') #路径是Chromedriver.exe的存放位置,windows下只要配置好这个环境就不需要了 browser.get('http://w') #需要登陆的那个网址 browser.find_element_by_xpath('//div[@view]/imput').send_keys('..........') #需要输入的表单如帐号 browser.find_element_by_xpath('//div[@view]/imput').send_keys('..........') #需要输入的表单如密码 browser.find_element_by_id('captcha').send_keys(input("有验证码输入验证码"))browser.find_element_by_xpath('//div[登陆的那个按钮]').click()#点击登陆 browser.quit()#退出浏览器
基本的点击与发送
#可以用selenium得到js加载后的html,比如抓取js加载的内容 browser = webdriver.Chrome(executable_path='') browser.get('http://...') print(browser.page_source)#js加载完成的源码''' 如果需要选择器快一点就使用scrapy中的Selector ''' Seit = Selector(text=browser.page_source) print(Seit.xpath('//*[@...]/text').extract()) #注意js加载本身就慢,在scrapy的异步当中,爬取的内容很快,导致有些js没有加载完成 #这样的话,只需要睡几秒就行
动态加载的数据获取
import timefrom selenium import webdriver from scrapy.selector import Selectorbrowser = webdriver.Chrome(executable_path='..') browser.get('http://.....')Seit = Selector(text=browser.page_source) Seit.xpath('//div[@class=""]/text()').extract().send_keys("00000000") Seit.xpath('//div[@class=""]/text()').extract().send_keys('************') Seit.xpath('//div[@class=""]/text()').extract().click()#下拉 for i in range(3):'''三次下拉操作 execute_script是用来执行js代码'''browser.execute_script("window.scrollTo(0,document.body.scrollHeight) var lenOfPage=docment.body.scrollHeight;return lenOfPage")time.sleep(3) # phantomjs无头浏览器:http://phantomjs.org/download.html
import time
from selenium import webdriver
from scrapy.selector import Selector
browser = webdriver.Chrome(executable_path='..')
browser.get('http://.....')
Seit = Selector(text=browser.page_source)
Seit.xpath('//div[@class=""]/text()').extract().send_keys("00000000")
Seit.xpath('//div[@class=""]/text()').extract().send_keys('************')
Seit.xpath('//div[@class=""]/text()').extract().click()
#下拉
for i in range(3):
'''三次下拉操作 execute_script是用来执行js代码'''
browser.execute_script("window.scrollTo(0,document.body.scrollHeight) var lenOfPage=docment.body.scrollHeight;return lenOfPage")
time.sleep(3)
# phantomjs无头浏览器:http://phantomjs.org/download.html