当前位置:   article > 正文

python的selenuim爬虫爬取实例_sele爬虫点击标题跳转的链接怎么看

sele爬虫点击标题跳转的链接怎么看


前言`

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


使用步骤

1.引入库

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

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
  • 1
  • 2
  • 3
'
运行

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

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

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

总结

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()
  • 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
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

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

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号