嗨喽~大家好呀,这里是魔王呐 ❤ ~!
python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
环境使用:
Python
Pycharm
模块使用:
selenium --> pip install selenium==3.141.0
time
csv
驱动下载地址: https://googlechromelabs.github.io/chrome-for-testing/#stable
小思路
今天案例使用: 谷歌浏览器
selenium 模拟人的行为操作浏览器:
自动打开浏览器, 获取网页上面数据内容
多页数据采集: 需要登陆账号才能实现翻页
通过selenium实现免登陆操作:
使用selenium访问网址的时候, 网页状态是登陆的状态
智联招聘如果你想要通过requests获取数据:
需要学习JS逆向 --> 瑞数5
js逆向比较复杂 --> 通过selenium去获取数据 但是效率很低
获取数据代码
“”“导入模块”“”
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 导入自动化测试模块
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 导入csv模块
import csv
# 导入时间模块
import time
“”“创建文件对象”“”
options = Options()
options.add_argument("--user-data-dir=C:\\Users\\shanhe\\AppData\\Local\\Google\\Chrome\\User Data")
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'职位',
'公司',
'薪资',
'年薪',
'城市',
'区域',
'经验',
'学历',
'公司性质',
'公司规模',
'标签',
])
csv_writer.writeheader()
打开浏览器
driver = webdriver.Chrome(options=options) # 实例化一个浏览器对象
访问目标网址
driver.get('https://sou.zhaopin.com/?jl=538&kw=python&p=1')
“”“页面下滑操作”“”
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def drop_down():
"""执行页面滚动的操作""" # javascript
for x in range(1, 12, 2): # 1 3 5 7 9 在你不断的下拉过程中, 页面高度也会变的
time.sleep(1)
j = x / 9 # 1/9 3/9 5/9 9/9
# document.documentElement.scrollTop 指定滚动条的位置
# document.documentElement.scrollHeight 获取浏览器页面的最大高度
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
driver.execute_script(js)
"""
定位元素 <元素面板上面>
driver.find_element_by_css_selector() 通过css选择定位元素
driver.find_element_by_xpath() 通过xpath定位元素
driver.find_element_by_id() 通过 ID 定位元素
driver.find_element_by_class_name() 通过 class类 名定位元素
- find_elements 表示提取多个
- find_element 表示提取一个
网页元素内容还没有加载完成, 就直接获取相关数据, 可能得不到内容
"""
def get_content():
# 延时等待 等元素内容加载完成
driver.implicitly_wait(10)
drop_down()
# 获取整页20