新人自学python 和爬虫,还请各位大佬们指点指点
运行效果
还有很多需要优化的地方,比如地点的筛选,这只做了一个岗位的搜索
地点是全国范围,后面会逐渐优化。
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/11/8 15:14
# @Author : Huni
# @File : 51job(正则).py
# @Software: PyCharm
import requests
import re
import xlwt
from urllib import parse
#主函数
def main():
savepath = "51.xls" #定义保存路径
book = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象
sheet = book.add_sheet('51job岗位信息', cell_overwrite_ok=True) # 创建工作表
# 关键字二次转译
kw = input("请输入你要搜索的岗位关键字:")
keyword = parse.quote(parse.quote(kw))
pageNum = 0
for i1 in range(0, 3): #爬取前三页
pageNum += 1
url = "https://search.51job.com/list/000000,000000,0000,00,9,99," + keyword + ",2," + str(pageNum) + ".html"
page_text = getUrl(url)
all_list = getDate(page_text)
if len(all_list[0]) == 0:
print('没有搜索到职位信息')
break
else:
print('正在爬取第%d页'%pageNum)
saveDate(sheet,all_list,pageNum,book,savepath,searchNum=len(all_list[0]))
#获取一个列表页
def getUrl(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'
}
#使用通用爬虫对url进行一页进行爬取
page_text = requests.get(url=url,headers=headers).text #一页源码用text
# print(page_text)
return page_text
#获取列表页的所有岗位信息