1. from selenium import webdriver
    2. import time
    3. import csv
    4. class boss_work:
    5. lst = []
    6. def __init__(self):
    7. self.driver = webdriver.Chrome()
    8. self.driver.get('https://www.zhipin.com/c101250100/?ka=sel-city-101250100')
    9. def parse_html(self):
    10. self.driver.execute_script(
    11. 'window.scrollTo(0, document.body.scrollHeight)'
    12. )
    13. time.sleep(5)
    14. for i in range(1, 6):
    15. list_ul = self.driver.find_elements_by_class_name('job-primary')
    16. # print(list_ul)
    17. for ul in list_ul:
    18. span = {}
    19. span['职位名称'] = ul.find_element_by_xpath('.//span[@class="job-name"]/a').text
    20. span['薪资'] = ul.find_element_by_xpath('.//span[@class="red"]').text
    21. span['公司名称'] = ul.find_element_by_xpath('.//h3[@class="name"]/a').text
    22. span['公司地址'] = ul.find_element_by_xpath('.//span[@class="job-area"]').text
    23. boss_work.lst.append(span)
    24. div_tag = self.driver.find_element_by_class_name('next')
    25. self.driver.execute_script('arguments[0].click();', div_tag)
    26. time.sleep(4)
    27. def save_data(self):
    28. with open('BOSS直聘.csv', 'w', encoding='utf-8-sig', newline='') as f:
    29. write = csv.DictWriter(f, fieldnames=('职位名称', '薪资', '公司名称', '公司地址'))
    30. write.writeheader()
    31. write.writerows(boss_work.lst)
    32. def main(self):
    33. self.parse_html()
    34. self.save_data()
    35. work = boss_work()
    36. work.main()