用selenium爬取前程无忧多页招聘信息
时间: 2023-09-28 19:07:33 浏览: 103
首先,我们需要安装selenium和ChromeDriver,以便使用Chrome浏览器进行网页爬取。具体安装方法可以参考官方文档。
接下来,我们需要编写Python代码实现爬取多页招聘信息的功能。首先,我们需要导入selenium库和time库。
```python
from selenium import webdriver
import time
```
然后,我们需要创建一个Chrome浏览器的实例,并打开前程无忧网站的招聘页面。
```python
driver = webdriver.Chrome()
driver.get('https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html')
```
这里的URL是前程无忧网站的招聘页面,我们可以通过修改URL中的参数来实现不同的搜索需求。例如,上面的URL中,010000表示找工作的地区,python表示要找的职位是Python开发工程师,2表示工作经验2年以上,1表示第一页。
接下来,我们需要循环遍历多页的招聘信息,并把每一页的招聘信息保存下来。
```python
for page in range(2, 6):
# 模拟点击下一页的按钮
next_btn = driver.find_element_by_css_selector('.p_in li:nth-last-child(2) a')
next_btn.click()
time.sleep(2)
# 获取当前页面的招聘信息
job_list = driver.find_elements_by_css_selector('#resultList .el')
for job in job_list:
# 获取每个招聘信息的各个字段
job_name = job.find_element_by_css_selector('.t1 a').text
company_name = job.find_element_by_css_selector('.t2 a').text
job_location = job.find_element_by_css_selector('.t3').text
salary = job.find_element_by_css_selector('.t4').text
publish_time = job.find_element_by_css_selector('.t5').text
# 将招聘信息保存到文件中
with open('job_info.txt', 'a', encoding='utf-8') as f:
f.write(f'{job_name}\t{company_name}\t{job_location}\t{salary}\t{publish_time}\n')
```
这里,我们通过模拟点击下一页的按钮来实现翻页,然后使用CSS选择器获取每一页的招聘信息,并遍历每个招聘信息的各个字段,最后把它们保存到文件中。
完整代码如下:
```python
from selenium import webdriver
import time
# 创建Chrome浏览器实例
driver = webdriver.Chrome()
# 打开前程无忧网站的招聘页面
driver.get('https://search.51job.com/list/010000,000000,0000,00,9,99,python,2,1.html')
# 循环遍历多页的招聘信息
for page in range(2, 6):
# 模拟点击下一页的按钮
next_btn = driver.find_element_by_css_selector('.p_in li:nth-last-child(2) a')
next_btn.click()
time.sleep(2)
# 获取当前页面的招聘信息
job_list = driver.find_elements_by_css_selector('#resultList .el')
for job in job_list:
# 获取每个招聘信息的各个字段
job_name = job.find_element_by_css_selector('.t1 a').text
company_name = job.find_element_by_css_selector('.t2 a').text
job_location = job.find_element_by_css_selector('.t3').text
salary = job.find_element_by_css_selector('.t4').text
publish_time = job.find_element_by_css_selector('.t5').text
# 将招聘信息保存到文件中
with open('job_info.txt', 'a', encoding='utf-8') as f:
f.write(f'{job_name}\t{company_name}\t{job_location}\t{salary}\t{publish_time}\n')
# 关闭浏览器
driver.quit()
```
运行代码后,就可以在当前目录下看到一个名为job_info.txt的文件,里面保存了多页招聘信息的详细内容。
阅读全文