当前位置:   article > 正文

利用selenium爬取boss直聘_boss直聘网页版频繁自动刷新

boss直聘网页版频繁自动刷新
正在通过boss直聘求职,然后见网上有需求boss直聘的职位大数据的,就简单写了一下,发现boss直聘的反爬机制还是比较友好的,首先不需要登陆就可以获取所有的职位信息,其次如果想要避过boss反爬成功访问,使用selenium完全可以直接访问,也就意味着如果使用requests的话,只要仿造一下请求头就可以完成,其中需要注意一下的是,boss直聘对爬虫此类的辨别主要体现在看访问的速率,笔者在完成爬虫时,大概一个ip可以访问3到4页,如果访问速度慢一点的话,也许可以更多,所以最好是可以构造一下ip池,几个ip协同访问就可以完成爬虫,再次把代码放一下吧,和原先一样核心代码我隐藏了,需要的话call我。
上一篇呢写过一个爬取淘宝的代码,有想看的也可以看一下。
  • 1
  • 2
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time
import requests
import csv

chromeOptions = webdriver.ChromeOptions()
# 设置代理
chromeOptions.add_argument("--proxy-server=http://117.93.19.224:4232 ")
driver = webdriver.Chrome(chrome_options = chromeOptions)
driver.get('https://www.zhipin.com/?sid=sem_pz_sgpc_title')
#选址部分
cxxx='java'
driver.find_element_by_xpath("//*[@id='wrap']/div[4]/div/div/div[1]/form/div[2]/p/input").clear()  #清空搜索
driver.find_element_by_xpath("//*[@id='wrap']/div[4]/div/div/div[1]/form/div[2]/p/input").send_keys(cxxx)  #键入内容
driver.maximize_window()   #放大
driver.find_element_by_xpath("//*[@id='wrap']/div[4]/div/div/div[1]/form/button").click()  #点击查找
time.sleep(30)
driver.find_element_by_xpath("//*[@class='btn-allcity']").click()  #点击全部城市   
time.sleep(2)
driver.find_element_by_xpath("//li[text()='ABCDE']").click()  #点击BCDEFG
time.sleep(2)
driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/ul[2]/li[2]/ul/li[1]/span").click() #北京
driver.find_element_by_xpath("//*[@id='filter-box']/div/div[1]/div/form/div[1]/p/input").clear()  #清空搜索
driver.find_element_by_xpath("//*[@id='filter-box']/div/div[1]/div/form/div[1]/p/input").send_keys(cxxx)  #键入内容
driver.find_element_by_xpath("//*[@id='filter-box']/div/div[1]/div/form/button").click()  #点击查找
#选址部分结束
time.sleep(3)
#接下来进入遍历状态
a=driver.find_elements_by_xpath("//span[@class='job-name']") #a是遍历的总体内容
suma = len(a) #限制遍历次数
i=0
fy=open('text.txt')#刚开始打开时的翻页控制
ym=fy.read()
ym=int(ym)
fy.close()  #翻页控制
while(i<=suma):
    time.sleep(3)
    all_handle = driver.window_handles
    driver.switch_to_window(all_handle[-1]) #切换完成
    a=driver.find_elements_by_xpath("//span[@class='job-name']") #a是遍历的总体内容
    if(i==suma):
        js="var q=document.documentElement.scrollTop=100000"    #翻到页尾
        driver.execute_script(js)    #翻到页尾
        driver.find_element_by_xpath("//a[@ka='page-next']").click() #a是遍历的总体内容   //*[@id="main"]/div/div[2]/div[2]/a[6]
        i=0
        continue
    a[i].click()
    i=i+1
    all_handle = driver.window_handles
    driver.switch_to_window(all_handle[-1]) #切换到子网页页柄
    #对于其中的内容进行提取
    try:
        print("隐藏")
    except:
        print("出错了!")
    driver.close()
  • 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
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/199439
推荐阅读
  

闽ICP备14008679号