首页
学习
活动
专区
工具
TVP
发布

python爬取拉勾网信息,快速找到自己心仪工作

项目运行

启动lagouspider.py填写要查询的城市和关键词即可,爬虫运行完毕会将信息保存到Excel表格中, 表格名称以启动时间和关键词命名

项目结构

爬虫代码,负责调度其他文件执行信息的提取和数据保存:

# -*- coding:utf-8 -*-

import requests

import json

from urllib.parse import quote

from config import myheaders

from bs4 import BeautifulSoup

from savedata import myexcel

class myspider(object):

def __init__(self,mykey,mycity):

# 自定义一个变量self.i,代表Excel表格的行数

self.i = 1

self.key = mykey

self.city = mycity

# 获取自定义请求头

self.headers = myheaders.get_headers(mykey,mycity)

# 获取表格类

self.excel = myexcel(mykey,mycity)

# 请求源代码,获取总页码数

def get_pages(self):

url = "https://www.lagou.com/jobs/list_{}?city={}&cl=false&fromSearch=true&labelWords=&suginput=".format(self.key,self.city)

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36"}

html = requests.get(url,headers=headers).text

soup = BeautifulSoup(html,"lxml")

totalnum = int(soup.select("span.totalNum")[0].text.strip())

return totalnum

# 获取单个页面的信息

def get_one_html(self,pagenum):

url = "https://www.lagou.com/jobs/positionAjax.json?px=default&city={}&needAddtionalResult=false".format(quote(self.city))

data = {

"first":"true",

"pn":pagenum,

"kd":self.key

}

html = requests.post(url=url,headers=self.headers,data=data).text

infos = json.loads(html)

jobs = infos["content"]["positionResult"]["result"]

for each in jobs:

self.i += 1

# 循环获取所有页面的信息

def main(self):

nums = self.get_pages()

for n in range(1,nums+1):

self.get_one_html(n)

print("总计{}页职位信息,已经成功写入{}页的信息到表格".format(nums,n))

print("所有信息保存完毕!")

if __name__ == '__main__':

# 城市为空的时候代表全国

spider = myspider("Python","深圳")

spider.main()

savedata.py :https://pan.baidu.com/s/1snbURhz

信息保存文件,负责信息保存的方式

config.py :https://pan.baidu.com/s/1pMAoC8F

配置文件,本项目中主要负责构造headers

Python库支持

requests json BeautifulSoup urllib.parse xlwt hashlib datetime random

spider思路

请求一次获取总页码数>>提取并保存数据到Excel>>按照总页码数循环翻页

其他

请求头headers需要附带cookie参数,可以自己构建一个cookie函数自动生成

Excel操作可以参考 https://pan.baidu.com/s/1mjtzK3u

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119A0WTEU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券