尝试一下爬取网站的网页数据

一、环境:
python3.+
在IDLE中(pycharm也可)

二、目标:
爬取拉勾网的python相关职位信息。

三、思路:
当准备爬取某网站数据时,应明确一下思路,爬虫是使用程序模拟人的浏览器操作获取数据的过程。所有的操作都是围绕着请求与响应。

四、步骤:
1、打开拉勾网,在搜索框中输入python,如图:


image.png

红框中的每一行就是一个个的项目信息,我们就是要爬取这些信息。

2、打开命令行,输入 pip install requests 安装requests库,用于网络请求


image.png

在进入网页的时候,有人会使用Get方式请求,并将当前的网页直接作为目标url,会直接被服务器给pass掉,因为真实的浏览器在访问时一定会带有一些参数的,故而在请求方式与参数都不正确的情况下,服务器自然判定为爬虫,不会返回正确的数据。

3、此时,可按F12查看当前网页中的NetWork项,一般的前端在请求数据的过程,都是先请求个大的网页框架,然后在容器中进一步发送请求,才能获得容器内部的数据,一般会采用Ajax请求,所以可以点击XHR,找到其中的positionAjax查看真实的url、headers以及formData此三项。
如图:


image.png

那么如何爬取呢?

打开python的IDLE:
按下Ctil + N进入编辑模式

注意:
使用IDEL需要先保存,再按F5运行。
为了更好的模仿浏览器去请求数据,在请求一次网页之后,我们给爬虫随机休眠一段时间。
我们所需要的数据就在上图中的Preview(Headers右边)中,如下图。


虽然不是很清晰,但应该不影响阅读

所写爬虫代码如下:

#coding:gbk
import requests #导入网络请求库
import random #导入随机数库

#这才是真实的url
url = 'https://www.lagou.com/jobs/positionAjax.json?city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false'

#请求头中的这些参数一般被用来做反爬的判断依据,每个人的User-Agent是不一样的
the_headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
    'Referer':'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=',
    'Host':'www.lagou.com',
    'X-Anit-Forge-Code':'0',
    'X-Anit-Forge-Token':None,
    'X-Requested-With':'XMLHttpRequest'
}

#循环爬取30页的数据
for pages in range(1,31):
    #post请求中要带上一些参数
    the_data = {
        'first':'true',
        'pn':pages,
        'kd':'python'
        }

    #向服务器请求数据
    result = requests.post(url, headers = the_headers, data = the_data)

    jsonResult = result.json()

    #我们想要的数据内容就从下面的关键字中一个层级一个层级的向下找
    json_result = jsonResult['content']['positionResult']['result']

    print(json_result)

    #为了模拟真实的浏览器操作,需要不定时休眠
    random.randint(20,36)

print('所有页面爬取成功')

结果:

image.png

如上图所示,已经爬取了很多页了,但是后面几页还是出了问题,问题在于休眠的时间设置的不够长,还是被服务器判别出了爬虫,因此不进行响应,只需要在休眠时间上放的更久即可,本程序中使用的休眠时间是20秒到36秒,可以尝试40秒到60.

结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 爬虫文章 in 简书程序员专题: like:128-Python 爬取落网音乐 like:127-【图文详解】py...
    喜欢吃栗子阅读 22,749评论 4 411
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 13,019评论 6 28
  • 作者:Python学习 链接:https://www.jianshu.com/p/c2473f3ebf75 环境...
    步_尘阅读 7,186评论 1 40
  • 青春本是一张黑白相片,岁月便是滤镜,为它涂抹上色彩。 自然下的青春充满生命的活力,傍晚在操场上慢跑的身影,左右晃动...
    安之以北阅读 286评论 5 3
  • 2017.09.10【黄~茶之醇&白~茶之甘】 上午,茶修第四课~~黄茶,白茶 今天教师节,祝福所有为我师者节日快...
    慧盈I阅读 393评论 0 2

友情链接更多精彩内容