Py学习  »  Python

Python爬虫自学系列(七) -- 项目实战篇(一)

看,未来 • 3 年前 • 311 次点击  

在这里插入图片描述

前言

之所以标题不说是爬什么网,主要是怕大家看了标题以为是之前那篇的返稿。其实不是啊。
这次爬的是腾讯的暑期实习招聘。
上次爬完之后放那边也没去更新过,今天再上去看,发现人家已经改版了。

不知道为啥啊,就喜欢爬他们家的,还有爬CSDN的。
那,这次改版,数据是好爬了呢,还是难爬了呢?拭目以待啊(好爬我就不写了,难爬我就写不了)

流程

第一步,打开网站

这不废话嘛,不打开网站怎么分析嘛。
腾讯暑期实习

不知道是不是我网络不太行,打开这个网址,有时候可以,有时候就是白屏。
所以爬不下来不用担心是被封了IP,可能是真的卡,缓缓再来就好。

第二步,分析网站

进去之后,你随便点,你会发现点来点去就是那一个网址,开心吧。
我的第一反应就是网页渲染。很抱歉这个系列没有提到网页渲染以及解决方法,因为我也不会啊。。。
毕竟我是个学后端的。

当时心里拔凉拔凉的,当时我还是不死心,点开了网页源码:
在这里插入图片描述

好样儿的。

当我把这句拿去百度的时候: href="javascript:;" ,网上的回复清一色都是用自动化测试工具去弄吧(selenium之类)。

为什么心里会凉呢?因为我觉得,这些模块,应该是一个模块一个数据包吧!!!
给我看傻了都,四个大label,每个大label里面还有好几个小label,然后小label里面还有下拉框,我的天哪!!!

就在我绝望之际,我还是点开了它的数据包,我想,就让我最后看一眼吧,我的天哪。
好,这么一看,就一个大label一个包?这么多数据就一个包?好极。

死灰复燃了。


分析json包

在这方面,我不得不说,火狐还是有它的优势在里面的,看一下: 技术类岗位数据包
在这里插入图片描述

这是火狐的。

跟网页对比一下,来看里面的那些元素分别是什么意思吧。

可以看到,所有的数据都在 JoinResultDtoList 里面,

(这里记得把转义字符自行转换)

title:岗位方向
rrCount:投递录用比
desc:岗位描述
request:岗位需求
workcity:据我分析啊,是这个样子的:
	1、深圳总部
	2、北京
	3、上海
	4、广州
	5、成都
	8、合肥
	11、杭州
招聘城市:远程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

其他三个包我都看过了,各位自取咯。

获取数据并简单处理

接下来,就是把数据拿下来处理了(简陋了点,我得去休息了):

import requests
import json

user_agent=[
# 请自己放上十几个头
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0'
]


list_urls=[]
def geturl():
    page = requests.get("https://join.qq.com/api/v1/jobDetails/getJobDetailsByPidAndTid?timestamp=1611742780882&pid=2&tid=2")
    html = page.text
    print(type(html))
    jhtml = json.loads(html)
    print(jhtml['data'])
    print(type(jhtml))
    for data in jhtml['data']:
        print(data)

geturl()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

各位尽请发挥。

整完之后记得存起来,可以参照我pandas的第二篇: pandas做数据存储

在这里插入图片描述
在这里插入图片描述

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106890
 
311 次点击