爬虫 - 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   疯狂的妞妞  阅读(8)  评论(0编辑  收藏  举报

(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示