Python 爬虫动态加载网站——拉勾网工作岗位

Python 爬虫拉勾网工作岗位

第一次用python进行爬虫,一开始怎么爬都没有数据,后来才知道,网上很多博客针对的是静态网址,而现在基本这种招聘网站都采用了动态加载的方法,经过一周的时间,百度加不停的改bug,终于爬出来了。在这里记录一下,也分享给大家。欢迎大家批评指正。
第一步:

1.先去拉钩网站:职位输入:python后网址:网址
图(1)
2.右击上述图片的空白处,选择“审查元素”,会出现如下界面,选择1处“Network”,保证2处红色圆点亮,然后点击图(1)中刷新,就会发现原本空白的Network下面有了很多内容。

3.挨个选择并查看上述抓包的内容,前提:选择Preview下查看内容
最后找到我想要的抓包内容,页面如下:

图(2)
图(3)
4.基于上述的操作中,查看此时的Headers,找到:
General下:Request URL对应内容
Request Headers下:accept、referer和user-agent对应的内容
(备程序使用)

第二步:程序调用
1.修改程序查找调用内容

def main():
    #选择地址和职位信息后,浏览器页面的网址
    url_start = "https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput="
    #抓包后的url
    url_parse = "https://www.lagou.com/jobs/positionAjax.json?city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false"
   #抓包后的内容信息
    headers = {
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
    }

url_start内容就是上述图(1)中的网址,url_parse是抓包后的Request URL对应的内容。其他三个内容,找到上述抓包的内容进行替换。

还要修改页数:对应查看一看,自己加载出来职位共多少页:

for x in range(1,23):   #23就是总页数,可根据实际修改
    data = {
   
        'first': 'true',
        'pn': str(x),
        'kd': 'python'
            }

完整代码:

import requests
import time
import json
import xlwt

def main():
    #选择地址和职位信息后,浏览器页面的网址
    url_start = "https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput="
    #抓包后的url
    url_parse = "https://www.lagou.com/jobs/positionAjax.json?city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false"
   #抓包后的内容信息
    headers = {
   
        'Accept': 'application/json, text/javascript, */*; q=0.01',
        'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
    }
    for x in range(1,23):#23就是总页数,可根据实际修改
        data = {
   
            'first': 'true',
            'pn': str(x),
            'kd': 'python'
                }
        s = requests.Session()
        s.get(url_start, headers=headers, timeout=3)  # 请求首页获取cookies
        cookie = s.cookies  # 为此次获取的cookies
        response = s.post(url_parse, data=data, headers=headers, cookies=cookie, timeout=3)  # 获取此次文本
        time.sleep(5)
        response.encoding = response.apparent_encoding
        text = json.loads(response.text)
        info = text["content"]["positionResult"]["result"]
        for i in info:
            companyFullName 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值