import requests
from bs4 import BeautifulSoup
import xlwt
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
def get_html():
k = 1 # 参k代表储存的行数
wb = xlwt.Workbook() # 创建工作簿
f = wb.add_sheet("招聘信息") # 创工作表
'''
下方循环是将表格中的第一行固定
表第一行的前四列分别对应 职位、公司、工作地点、薪资
'''
raw = ['职位', '公司', '工作地点', '薪资']
for i in range(len(raw)):
f.write(0, i, raw[i])
'''
write函数表示第一个参数表示存储多少行
第二个存储多少列表 第三个存储到对应列的值
'''
url = 'https://search.51job.com/list/120200,000000,0000,00,9,99,%25E5%25A4%25A7%25E6%2595%25B0%25E6%258D%25AE,2,1.html'
try:
for page in range(9): # 前九页
res = requests.get(url.format(page))
res.encoding = 'gbk'
if res.status_code == 200:
soup = BeautifulSoup(res.text, 'lxml')
t1 = soup.select('.t1 span a') # 职位
t2 = soup.select('.t2 a') # 公司
t3 = soup.select('.t3') # 地点
t4 = soup.select('.t4') # 薪资
for i in range(len(t2)):
job = t1[i].get('title') # 获取职位
href = t2[i].get('href') # 链接
company = t2[i].get('title') # 公司
location = t3[i + 1].text # 工作地点
salary = t4[i + 1].text # 薪资
print(job + " " + company + " " + location + " " + salary + " " + href)
f.write(k, 0, job)
f.write(k, 1, company)
f.write(k, 2, location)
f.write(k, 3, salary)
k += 1 # 每存储一行k+1
wb.save('招聘.csv') # 写完后调用save方法保存
except TimeoutError:
print("请求失败")
return None
if __name__ == '__main__':
get_html()
python爬取前程无忧招聘网站信息(requests+bs4+xlwt)
最新推荐文章于 2024-07-09 14:45:02 发布