网络爬虫组合
selenium
- Web自动化测试工具,应用于Web自动化测试
- 可以运行在浏览器,根据指定命令操作浏览器,让浏览器自动加载页面
- 只是工具,不支持浏览器功能,需要与第三方浏览器结合使用
phantomjs
- 无界面浏览器(无头浏览器)
- 把网站加载到内存进行页面加载
- 运行高效
常用方法
# 打开要爬取网址
driver.get(url)
# 获取响应的html源码
driver.page_source
# 从html源码中搜索指定字符串
# -1:查找失败
# 非-1:查找成功
driver.page_source.find("字符串")
# 单元素查找
# 如果匹配到多个节点,则只返回第1个节点对象
driver.find_element_by_id("id")
driver.find_element_by_class_name("class_name")
driver.find_element_by_xpath('xpath表达式')
# 多元素查找
# 如果结果是1个,则返回节点对象,不是列表
# 如果结果是N个,则返回列表
driver.find_elements_by_class_name("class_name")
driver.find_elements_by_xpath('xpath表达式')
# 发送文本
对象名.send_keys("内容")
# 点击对象
对象名.click()
操作键盘
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 创建浏览器对象,发送请求
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
time.sleep(2)
# 百度搜索输入python
kw = driver.find_element_by_id("kw")
kw.send_keys("python")
time.sleep(2)
# 全选 ctrl + a
kw = driver.find_element_by_id("kw")
kw.send_keys(Keys.CONTROL,'a')
time.sleep(2)
# 剪切 ctrl + x
kw = driver.find_element_by_id("kw")
kw.send_keys(Keys.CONTROL,'x')
time.sleep(2)
# 粘贴 ctrl + v
kw = driver.find_element_by_id("kw")
kw.send_keys(Keys.CONTROL,'v')
time.sleep(2)
# 清空搜索框
kw = driver.find_element_by_id("kw")
kw.clear()
time.sleep(2)
# 输入:NBA
kw = driver.find_element_by_id("kw")
kw.send_keys("NBA")
time.sleep(2)
# 输入:回车
kw = driver.find_element_by_id("kw")
kw.send_keys(Keys.ENTER)
Chromdriver如何设置无界面模式
opt = webdriver.ChromeOptions()
opt.set_headless()
driver = webdriver.Chrome(options=opt)
driver.get(url)
网友评论