python的selenuim爬虫爬取实例

2023-10-27


前言`

本文仅用selenium爬取求职信息,记录selenium的尝试和使用


使用步骤

1.引入库

本代码仅仅使用selenium库和time库来操作,无其他数据处理操作

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep

2.引入谷歌内核以及定位打开页面

代码如下(示例):

#谷歌内核
path="D:\Google\Chrome\Application\chromedriver.exe"
driver=webdriver.Chrome(executable_path=path)
#调窗口至全屏大小
driver.maximize_window()
#打开页面
driver.get('https://www.zhipin.com/zhengzhou/?sid=sem_pz_360pc_title')
sleep(3)

3.使用selenium控制浏览器页面搜索需要信息

以数据分析师为例

search = driver.find_element(By.XPATH,'//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
search.send_keys("数据分析师")
sleep(2)
submit = driver.find_element(By.XPATH,'//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button')
submit.click()
print('搜索结束,开始寻找信息')
driver.implicitly_wait(5)
sleep(3)

4.定位到所需要的li标签

我们所需要的是各种招聘类信息,所以先进入页面寻找定位标签
先通过class定位到装有信息的li标签
在这里插入图片描述

lis = driver.find_elements(By.CSS_SELECTOR,'.job-card-wrapper')
print('定位完成')

5.从li标签中提取信息

因为li标签不止一个,所以我们需要采用循环一次提取并输出

for li in lis:
    jobname = li.find_element(By.CSS_SELECTOR, '.job-name').text
    print(jobname)
    info_data = li.find_element(By.CSS_SELECTOR, '.job-card-left').get_attribute('href')
    print(info_data)
    jobarea = li.find_element(By.CSS_SELECTOR, '.job-area').text
    print(jobarea)
    slary = li.find_element(By.CSS_SELECTOR, '.salary').text
    print(slary)
    print('工作名字:' + jobname + ' 工作场所:', jobarea + ' 工资:' + slary + ' 详细链接:' + info_data)
    print('\n')

总结

selenium的自动化操作页面目前技术有限,仅能先进行爬取,而自动化技术难以实现

不过我在爬取过程中却老是出现搜索后页面不断刷新,难以定位到li标签然后直接退出的问题,如果遇到,现在我能做到的仅为多尝试几次,看运气了。

源码如下

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
#BOSS直聘
#谷歌内核
path="D:\Google\Chrome\Application\chromedriver.exe"
driver=webdriver.Chrome(executable_path=path)
#调窗口至全屏大小
driver.maximize_window()
#打开页面
driver.get('https://www.zhipin.com/zhengzhou/?sid=sem_pz_360pc_title')
sleep(3)

search = driver.find_element(By.XPATH,'//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/div[2]/p/input')
search.send_keys("数据分析师")
sleep(2)
submit = driver.find_element(By.XPATH,'//*[@id="wrap"]/div[3]/div/div[1]/div[1]/form/button')
submit.click()
print('搜索结束,开始寻找信息')
driver.implicitly_wait(5)
sleep(3)
# #
lis = driver.find_elements(By.CSS_SELECTOR,'.job-card-wrapper')
print('定位完成')

for li in lis:
    jobname = li.find_element(By.CSS_SELECTOR, '.job-name').text
    print(jobname)
    info_data = li.find_element(By.CSS_SELECTOR, '.job-card-left').get_attribute('href')
    print(info_data)
    jobarea = li.find_element(By.CSS_SELECTOR, '.job-area').text
    print(jobarea)
    slary = li.find_element(By.CSS_SELECTOR, '.salary').text
    print(slary)
    print('工作名字:' + jobname + ' 工作场所:', jobarea + ' 工资:' + slary + ' 详细链接:' + info_data)
    print('\n')
driver.quit()

最终爬取效果如下
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python的selenuim爬虫爬取实例 的相关文章

随机推荐

  • ant design proV1.0的采坑之旅 (动态创建菜单、访问mock数据、富文本编辑器)

    最近公司做一个后台管理系统 犹豫半天还是想用ant design 后来发现他们有现成的脚手架 ant design pro github地址 果断拉代码下来运行起来 一 ant design pro 项目目录结构和流程 整体目录大概长这个样
  • Tensorflow中的图操作和图变量

    一 可能引起的问题 1 图操作重复载入会导致模型变量越来越大 调用saver保存时可能报错 错误信息 Cannot serialize protocol buffer of type tensorflow GraphDef as the s
  • sort按vector元素排序

    include
  • Xshell在使用msh的时候无响应

    在使用Xshell开发正点原子的战舰V3的时候 下载程序或者复位单片机后无响应 在RTT官方文档看到有如下说明 注 正点原子一键下载电路和终端工具冲突 在使用终端工具如 PuTTy XShell 时 会出现系统不能启动的问题 推荐使用串口调
  • 微信微店怎么开店铺步骤【微信开店】

    商家在微信平台主要是通过什么方式进行卖货呢 大家的答案都会是微信小店 小程序微店铺之类的 的确微信店铺是商家在微信平台上重要的卖货渠道 那么微信微店怎么开店铺 下面就给大家分享微信微店怎么开店铺步骤 一 准备好资料 由于微信上通过小程序销售
  • wireshark抓组播数据_wireshark怎么抓包 wireshark抓包详细图文教程

    开始界面 wireshark是捕获机器上的某一块网卡的网络包 当你的机器上有多块网卡的时候 你需要选择一个网卡 点击Caputre gt Interfaces 出现下面对话框 选择正确的网卡 然后点击 Start 按钮 开始抓包 Wires
  • netfilter 理解

    Netfilter概述 Netfilter IPTables是Linux2 4 x之后新一代的Linux防火墙机制 是linux内核的一个子系统 Netfilter采用模块化设计 具有良好的可扩充性 其重要工具模块IPTables从用户态的
  • 线程间同步与互斥:生产者消费者问题

    总结一下线程间同步与互斥生 产者消费者问题 一 互斥锁 mutex 对于多线程的程序 访问冲突的问题是很普遍的 解决的办法是引 入互斥锁 Mutex MutualExclusive Lock 获得锁的线程可以完成 读 修改 写 的操作 然后
  • DataGridView使用bindingNavigator实现分页功能(应用存储过程)

    想法是这样的 使用bindingNavigator 存储过程实现DataGridView的分页功能 其中包含简单的查询 存储过程如下 创建分页查询存储过程 含输出参数 输入参数 含搜索功能 use HotelDB if exists sel
  • 树、二叉树、完全二叉树、满二叉树的概念和性质

    目录 一 树的概念及其结构 1 树的特点 2 树的相关概念 3 树的表示 二 二叉树的概念及其结构 1 二叉树的概念 2 二叉树的特点 三 特殊的二叉树 1 满二叉树 2 完全二叉树 四 二叉树的性质 很重要 常用 两道小例题 五 二叉树的
  • 地表最强一阶段目标检测框架:yolov4之tf2+版本

    原文地址 从第一版的yolov3 GitHub qqwweee keras yolo3 A Keras implementation of YOLOv3 Tensorflow backend 在这位q神翻译出来后 在下一直跟进yolo的发展
  • 三家运营商携手共建国家区块链基础设施BSN

    日前 首届区块链服务网络合作伙伴大会在杭州召开 国家信息中心 中国移动 中国银联和杭州市及下城区等多位高层领导出席 值得注意的是 除了作为发起单位之一的中国移动以外 中国电信 中国联通这两家电信运营商也都派出高级代表参会 中国联通旗下的智慧
  • bootstrap第八章:导航

    bootstrap第八章 导航 文章目录 bootstrap第八章 导航 1 bootstrap导航元素 1 1创建基本的导航 1 2导航的对齐 1 2 1垂直对齐的导航 1 3填充和调整导航组件 1 4下拉式导航 1 5导航类 2 boo
  • 利用高斯消元法及LU分解法解方程组(C、Java)

    1 描述 高斯消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示 并将其代入到另一方程中 这就消去了一未知数 得到一解 或将方程组中的一方程倍乘某个常数加到另外一方程中去 也可达到消去一未知数的目的 消元法主要用于二元一次方程组
  • 如何在Kaggle读取本地上传的文件

    如何在Kaggle读取本地上传的文件 1 首先上传本地文件 Kaggle会让你自己取名 这个名字即为本地文件的上一级文件夹 建议不要用下划线 容易出错 例如我取的名字为newsdata 2 上传完毕后可以用Kaggle自带的代码来读取路径
  • BLV脉动阵列实现矩阵SVD分解

    理论上 由于噪声的存在 自相关矩阵是正定的 而对于对称正定阵 它的奇异值分解等价于于特征值分解 在之前看到的论文中 有用单边jacobi算法来求出矩阵特征值及特征向量 我在matlab上并没有实现 其中有条求theta的公式不知原作者是怎么
  • 蓝桥杯单片机 ——接收字符、字符串

    1定时器中断方法 完整代码在文末 2 定时的方法 推荐 蓝桥杯单片机第十四届第三次模拟题 让我来瞅一瞅的博客 CSDN博客 定时器0 定时功能 判断接受数据是否完成 定时器1 串口功能 接受 发送数据 一 主机接收下位机 client 发送
  • 2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

    2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现 新型隔热材料 A 具有优良的隔热特性 在航天 军工 石化 建筑 交通等高科技领域中有着广泛的应用 目前 由单根隔热材料 A 纤维编织成的织物 其热导率可以直接测
  • 写作——如何选择参考文献

    好的论文一般是顶刊顶会的 大多数是近五年的论文 1 什么是顶会 答 CCF A类会议 例如AAAI CVPR ICML IJCAI SIGIR NIPS等 详见QQ群文件 CCF中国计算机学会推荐国际学术会议和期刊目录 2019 pdf 2
  • python的selenuim爬虫爬取实例

    文章目录 前言 使用步骤 1 引入库 2 引入谷歌内核以及定位打开页面 3 使用selenium控制浏览器页面搜索需要信息 4 定位到所需要的li标签 5 从li标签中提取信息 总结 前言 本文仅用selenium爬取求职信息 记录sele