使用Python编程语言和Selenium库来实现自动化的网页操作,从而实现登录、搜索和爬取职位信息的功能。
首先,导入了所需的库,包括time用于处理时间,selenium用于模拟浏览器操作,csv用于写入CSV文件,BeautifulSoup用于解析网页数据。然后,定义了一个名为login的函数,该函数接受一个WebDriver对象和一个关键词作为参数。
在login函数中,使用WebDriver对象打开51job网站,并通过模拟用户的行为进行登录操作。登录过程中需要输入关键词并点击搜索按钮。然后,使用BeautifulSoup库解析页面源代码,找到包含职位信息的HTML元素,并逐个提取出岗位名、公司、薪资、城市、区县、行业、标签、性质、企业人数和回复等信息。将提取的信息存储在一个列表中,并通过csv库将列表中的数据写入到CSV文件中。
在主函数main中,配置了Chrome浏览器的启动选项,并创建了一个WebDriver对象。接下来,代码循环遍历不同的城市列表,在每个城市中调用login函数进行登录和职位信息的爬取。
代码的运行过程是自动化的,通过模拟浏览器操作来实现登录和搜索功能,然后从搜索结果中提取所需的职位信息,并将其保存到CSV文件中。使用Selenium库可以实现与浏览器相同的操作,包括点击按钮、输入文本、滚动页面等。
主要代码如下:
def main():
# while True:
"""
chromeOptions 是一个配置 chrome 启动是属性的类,就是初始化
"""
option = webdriver.ChromeOptions()
"""
add\_experimental\_option 添加实验性质的设置参数
"""
option.add\_experimental\_option('excludeSwitches', \['enable-automation'\]) # webdriver防检测
'''
add\_argument 添加启动参数
'''
# option.add\_argument("--disable-blink-features=AutomationControlled")
# option.add\_argument("--no-sandbox")
# option.add\_argument("--disable-dev-usage")
# option.add\_experimental\_option("prefs", {"profile.managed\_default\_content\_settings.images": 2})#不加载图片
"""
Chrome 配置驱动
"""
driver = webdriver.Chrome(executable\_path='chromedriver.exe',options=option)
driver.set\_page\_load\_timeout(15)
list0=\[\['guangzhou', '广州'\], \['shanghai', '上海'\], \['shenzhen', '深圳'\], \['changsha', '长沙'\],\['chongqing','重庆'\]\]
for k in list0:
login(driver,k)
time.sleep(15)
# driver.set\_page\_load\_timeout(15)
# jugesd(driver)
if \_\_name\_\_ == '\_\_main\_\_':
headers = {
'User-Agent':'你的user-agent',
'Cookie':'你的cookie(一定要登录,不然久不久就会反爬验证)'}
main()
完整代码可联系我,白嫖勿扰