selenium爬ajax评论(二)

http://www.santostang.com/2018/07/15/4-3-%E9%80%9A%E8%BF%87selenium-%E6%A8%A1%E6%8B%9F%E6%B5%8F%E8%A7%88%E5%99%A8%E6%8A%93%E5%8F%96/

选择元素

find_element_by_id:通过元素的id选择,例如:driver.find_element_by_id(‘loginForm’)
find_element_by_name:通过元素的name选择,driver.find_element_by_name(‘password’)
find_element_by_xpath:通过xpath选择,driver.find_element_by_xpath(“//form[1]”)
find_element_by_link_text:通过链接地址选择
find_element_by_partial_link_text:通过链接的部分地址选择
find_element_by_tag_name:通过元素的名称选择
find_element_by_class_name:通过元素的id选择
find_element_by_css_selector:通过css选择器选择

需要多个元素就加上s 变成find_elements

推荐 xpath和css_selector

自动操作网页

– clear 清除元素的内容
– send_keys 模拟按键输入
– click 点击元素
– submit 提交表单

自动登录

user = driver.find_element_by_name("username")  #找到用户名输入框
user.clear  #清除用户名输入框内容
user.send_keys("1234567")  #在框中输入用户名
pwd = driver.find_element_by_name("password")  #找到密码输入框
pwd.clear  #清除密码输入框内容
pwd.send_keys("******")    #在框中输入密码
driver.find_element_by_id("loginBtn").click()  #点击登录

还可以 双击,拖拽等操作。此外,它还可以获得网页中各个元素的大小,甚至还可以进行模拟键盘的操作。selenium的官方文档查看:http://selenium-python.readthedocs.io/index.html

现在css加载

设置属性firefox_profile

fp = webdriver.FirefoxProfile()
fp.set_preference("permissions.default.stylesheet",2)
driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp, capabilities=caps)

运行可以看到网页的样式没了

限制图片加载

加一个图片限制属性
fp.set_preference("permissions.default.image",2)

禁止JavaScript

fp.set_preference("javascript.enabled", False)

完整代码

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
import time

caps = webdriver.DesiredCapabilities().FIREFOX
caps["marionette"] = True
binary = FirefoxBinary(r'D:\Program Files\Mozilla Firefox\firefox.exe') # 火狐浏览器地址


# 属性
fp = webdriver.FirefoxProfile()
fp.set_preference("permissions.default.stylesheet", 2)  # 限制css
fp.set_preference("permissions.default.image", 2)  # 限制图片
fp.set_preference("javascript.enabled", False)  # 禁止js

driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp, capabilities=caps)

driver.get("http://www.santostang.com/2018/07/04/hello-world/")  # 打开网页



time.sleep(3)  # 等一下 等页面加载好

# 找到元素
driver.switch_to.frame(driver.find_element_by_css_selector("iframe[title='livere']"))
comments = driver.find_elements_by_css_selector('div.reply-content')
for eachcomment in comments:
    content = eachcomment.find_element_by_tag_name('p')
    print (content.text)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容