10月7号通过selenium解决拉勾网反爬

selenium爬取数据

代码是将数据放入了数据库中懒得改了就直接发了

driver=webdriver.Chrome()
driver.get("https://www.lagou.com")
driver.find_element_by_class_name("tab").click()
driver.find_element_by_id("search_input").send_keys("python数据分析")
driver.find_element_by_class_name("search_button").click()
time.sleep(3)
for k in range(30):
    data1=driver.find_elements_by_class_name("position_link")
    data2=driver.find_elements_by_class_name("format-time")
    data3=driver.find_elements_by_class_name("p_bot")
    data4=driver.find_elements_by_class_name("company_name")
    data5=driver.find_elements_by_class_name("list_item_bot")
    data6=driver.find_elements_by_xpath("//a[@class='position_link']")
    for i in range(len(data1)):
        x1=data2[i].text
        x2=data1[i].text.split()
        x3=data3[i].text.split()
        x4=data4[i].text
        x5=data5[i].text.split()
        x6=data6[i].get_attribute('href')
        sql="insert into python_data_analysis values(0,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
        cur.execute(sql,[x1,x2[0],str(x2[1]),x3[0],x3[1],x4,str(x5[0:-1]),x5[-1],x6])
        conn.commit()
   ###下面的是定位翻页按键
    if k<1:
        a=driver.find_element_by_xpath("//ul[@id='order']//div[@class='next_disabled next ']")
        a.click()
    elif k<=28:
        a=driver.find_element_by_xpath("//ul[@id='order']//div[@class='next_disabled next']")
        a.click()
    print("保存成功")
    time.sleep(4)

通过selenium去爬取数据主要的难题在翻页,最底下的翻页按钮定位到之后会被提示
‘element click intercepted’点击被拦截了,所以用上面的翻页按钮进行翻页
在这里插入图片描述

if k<1:
        a=driver.find_element_by_xpath("//ul[@id='order']//div[@class='next_disabled next ']")
        a.click()
    elif k<=28:
        a=driver.find_element_by_xpath("//ul[@id='order']//div[@class='next_disabled next']")
        a.click()

定位元素翻页,第一页翻页的时候我们可以在浏览器里看到 ‘ > ’ 这个摁键的class是’next_disabled next ’
!!!!重点带空格的,第二页以后的class都变成了’next_disabled next’少了一个空格。嗯然后就解决了
(仅供学习使用呀)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值