爬虫 - helloworld
安装依赖库
pip install selenium
helloworld
效果:弹出浏览器,输入 python,之后自动点击 “百度一下”,5秒之后关闭浏览器。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开指定(chrome)浏览器
browser = webdriver.Chrome()
# 指定加载页面
browser.get("https://www.baidu.com/")
# 通过name属性选择文本框元素,并设置内容
browser.find_element(By.NAME,'wd').send_keys("python")
# 通过通过ID属性获取“百度一下”按钮,并执行点击操作
browser.find_element(By.ID,"su").click()
# 提取页面
print(browser.page_source.encode('utf-8'))
# 提取cookie
print(browser.get_cookies())
# 提取当前请求地址
print(browser.current_url)
# 设置五秒后关闭浏览器
time.sleep(5)
# 关闭浏览器
browser.quit()
定制学习计划
爬虫的基本操作,就是模拟用户操作,定位到具体的界面之后,截取所需的 html 脚本,之后开始做细致地分析。
所以,确定今后的学习目标:
- 分析静态 html ,定位、抓取所需的界面元素;
- 模拟用户的操作,完成点击、输入等操作;
- 调用界面已有的脚本(javascript);
- 在界面嵌入一段脚本(javascript);
- ……
定位、抓取所需的界面元素
这个过程的原理,竟然意外的简单:
类似于 javascript 中的 document.getElementById(id),通过 ID 找到对应的 node,之后开始分析 node。
常见的选择器(selenium 包)
爬虫自然要比 javascript 厉害,提供了更加丰富的 API,
selenium 包中有这么多种选择器,可以根据场景选用不同的选择器:
ID = "id" # id 查找
XPATH = "xpath" # xpath
LINK_TEXT = "link text" # 根据 a 标签的文本内容,精准匹配 a 标签
PARTIAL_LINK_TEXT = "partial link text" # 根据 a 标签的文本内容,模糊匹配 a 标签,可能抓新闻热搜什么的会用到
NAME = "name" # name 查找
TAG_NAME = "tag name" # 标签名称查找
CLASS_NAME = "class name" # class 查找
CSS_SELECTOR = "css selector" # css 选择器查找
代码样例
下面演示一些简单的选择器,过于基础,不做过多解释。
有两个的选择器:CSS_SELECTOR、XPATH,因为非常复杂,后面需要单独介绍。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 打开指定(chrome)浏览器
browser = webdriver.Chrome()
# 指定加载页面
browser.get("http://localhost:7081/sea/index.ftl")
# ID 选择
print(browser.find_element(By.ID,'a').text)
# NAME 选择
browser.find_element(By.NAME,'b').send_keys("python")
# CLASS 选择
print(browser.find_element(By.CLASS_NAME,'c').text)
# 根据标签名称查找
print(browser.find_elements(By.TAG_NAME,'span')[0].text)
# 设置五秒后执行下一步
time.sleep(20)
# 关闭浏览器
browser.quit()
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!