当前位置:   article > 正文

python爬虫之爬取拉勾网_拉勾网爬虫

拉勾网爬虫

这次要爬取拉勾网,拉勾网的反爬做的还是很不错的啊,因为目标网站是Ajax交互的我一开始是直接分析json接口来爬取的,但是真的很麻烦,请求头一旦出点问题就给识别出来了后续我就改了一下方法用selenium来模拟浏览器去获取

招聘求职信息-招聘网站-人才网-拉勾招聘 (lagou.com)https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=先把前面代码写好  

思路嘛大概就是  获取主页的源代码——从中获取详情页的url——在去解析 先围绕这三步来写

这里我们已经获取到了主页的源代码 

  1. from selenium import webdriver
  2. import requests
  3. from selenium.webdriver import ChromeOptions #这个包用来规避被检测的风险
  4. from lxml import etree
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. from selenium.webdriver.support import expected_conditions as EC
  7. from selenium.webdriver.common.by import By
  8. import time
  9. import re
  10. class lagouSpitder(object):
  11. option = webdriver.ChromeOptions()
  12. option.add_experimental_option('useAutomationExtension', False)
  13. option.add_experimental_option('excludeSwitches', ['enable-automation'])
  14. driver_path = r'驱动路径' # 定义好路径
  15. def __init__(self):
  16. self.driver=webdriver.Chrome(executable_path=lagouSpitder.driver_path,options=lagouSpitder.option)#初始化路径+规避检测selenium框架
  17. self. driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  18. "source": """
  19. Object.defineProperty(navigator, 'webdriver', {
  20. get: () => undefined
  21. })
  22. """
  23. })
  24. self.url='https://www.lagou.com/jobs/list_python/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput='
  25. self.positions=[]
  26. def run(self): #主页面
  27. self.driver.get(self.url)
  28. source = self.driver.page_source # source页面来源 先获取一页
  29. if __name__ == '__main__':
  30. spider=lagouSpitder()
  31. spider.run()

接下来获取详情页的url,定义一个函数parse_list_page 显得美观可维护也强ÿ

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

闽ICP备14008679号