Python爬虫实战(7)Selenium+拉勾网
利用selenium和BeautifulSoup库爬取拉勾网的职位信息。
运行平台: Windows
Python版本: Python 3.8
IDE: Pycharm
基本思路:打开网页在输入框输入搜索信息,再点击搜索,在网页源码中得到各个职位信息的href。再利用各个href打开职位信息的详情页,爬取信息。
网页分析
首页
打开首页会跳出切换城市的界面,找到关闭界面的id,点击关闭它。
然后依次找到输入框,输入内容,再点击搜索。
列表页
各个职位的href都放在class=“position_link” 这个标签中。找到这些职位的href即可。
详情页
职位的名称在class=“name” 中,其他信息在class=“job_request” 的各个span标签下。
代码
# 利用selenium爬取拉勾网信息
import time
from selenium import webdriver
from bs4 import BeautifulSoup
class Lagou_spider(object):
driver_path = r'E:\PythonProject\Spider\chromedriver.exe'
def __init__(self):
self.driver = webdriver.Chrome(executable_path=self.driver_path)
self.url = 'https://www.lagou.com/'
def run(self):
self.driver.get(self.url)
# 关闭首页的切换城市选择
inputTag = self.driver.find_element_by_id('cboxClose')
inputTag.click()
time.sleep(1)
# 在输入框输入内容,并点击搜索
inputTag = self.driver.find_element_by_id('search_input')
inputTag.send_keys('huawei')
time.sleep(1)
inputTag = self.driver.find_element_by_id('search_button')
inputTag.click()
# 得到网页源码
while True:
source = self.driver.page_source
self.parser_lists_page(source)
# 判断还有没有下一页
if self.driver.page_source.find('pager_next pager_next_disabled') != -1:
break
else:
self.dri