爬虫 - 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 脚本,之后开始做细致地分析。

所以,确定今后的学习目标:

  1. 分析静态 html ,定位、抓取所需的界面元素;
  2. 模拟用户的操作,完成点击、输入等操作;
  3. 调用界面已有的脚本(javascript);
  4. 在界面嵌入一段脚本(javascript);
  5. ……

定位、抓取所需的界面元素

这个过程的原理,竟然意外的简单:

类似于 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()

posted on 2024-12-06 11:43  疯狂的妞妞  阅读(3)  评论(0编辑  收藏  举报

导航