python抓取网站职位信息代码及解析
第一次写一篇博客,博主用的是 Anaconda里的spyder
抓取数据的目标网站是拉勾网https://www.lagou.com/,首先输入自己想找的工作内容,按F12打开对应开发人员工具,F5刷新下界面,点击对应的xhr和js看相关传输数据(ajax看xhr,ajax界面无需重新加载整个网页的情况下,能够更新部分网页的技术,数据传输会减少,所以用的还是多的,呜呜呜以前还写过工作后都用不到了),可以看到下图的positionAjax.json
里面的数据就是我们想要的薪资以及对应公司的信息,复制该json文件链接地址
https://www.lagou.com/jobs/positionAjax.json?city=%E6%B7%B1%E5%9C%B3&needAddtionalResult=false后续我们从这里爬取对应数据
我们继续下拉这个js数据,看看他如何进行对应页码的数据获取,可以看到FORM_DATA 这个数据有我们要的相关信息(手动输入在搜索栏里的 kd:数据分析 页码对应Pn:1 first:true),我们接着进行验证可以点击第二页继续查看,发现对应只是Pn+1,因此可以写出对应的代码
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',# 自己百度下什么型号用着爽用什么型号
'Host':'www.lagou.com',# 首页名
'Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90'
} # 请求头,URL中设置了城市名
form_data = {
'first':'true','pn':num,'kd':'数据分析'} # 网页From Data参数
因为现在的网页都会写一些反爬虫功能(我print(r.json())后发现控制台弹出网页请求繁忙,以前写JAVA都练习过Cookies吧,emmmm没cookies访问太多次被拉黑了呗),所以大多都是要写cookies的,不同网页自己定义的Cookies不同,因此我们需要获取网站的Cookies,获取Cookies
cookie_url = "https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90"
session = requests.Session()
session.get(url=cookie_url, headers=headers)
cookies_new=session.cookies#获取网站cookies
把单页js进行解析,(网上百度下Js在线解析复制js内容进去),可以在获取json的地方改下代码即可(print直接控制台显示复制不方便,直接txt保存到本地了)
import requests
import math
import pandas as pd
import time
import json
def get_json(url, num): # 获取JSON,获取第几页数据
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',
'Host':'www.lagou.com',
'Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90'
} # 请求头,URL中设置了城市名
form_data = {
'first':'true','pn':num,'kd':'数据分析'} # 网页From Data参数
cookie_url =