一、认识动态网站

所谓的动态网站,是使用ajax加载出来的网页,我们打开网页的时候可以正常显示内容,但是我们在显示网页源代码的时候,里面却找不到该节点.

二、常见动态网站的抓取方式

1、直接分析ajax调用的接口,然后通过代码请求这个接口

2、采用模拟浏览器请求该动态网站,然后获取网页数据

一、分析网页数据请求

二、使用requests库直接模拟请求数据

from urllib import parse

import requests

def get_html():

"""

定义一个函数获取拉钩职位信息

:return:

"""

params = {

'px': 'default',

'city': '深圳',

'needAddtionalResult': 'false'

}

url = 'https://www.lagou.com/jobs/positionAjax.json?{0}'.format(parse.urlencode(params))

form_data = {

'first': 'true',

'pn': '1',

'kd': 'python',

}

headers = {

'Accept': 'application/json, text/javascript, */*; q=0.01',

'Accept-Encoding': 'gzip, deflate, br',

'Accept-Language': 'zh-CN,zh;q=0.9',

'Connection': 'keep-alive',

'Content-Length': '25',

'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

'Cookie': 'JSESSIONID=ABAAABAAAGFABEFF0428531C82A2DC0C1C0DCAE2CA9FABE; _ga=GA1.2.484492928.1537518656; _gid=GA1.2.808273883.1537518656; _gat=1; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1537518657; user_trace_token=20180921163056-a947353a-bd78-11e8-a518-525400f775ce; LGSID=20180921163056-a9473670-bd78-11e8-a518-525400f775ce; PRE_UTM=; PRE_HOST=; PRE_SITE=; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2F; LGUID=20180921163056-a9473875-bd78-11e8-a518-525400f775ce; TG-TRACK-CODE=index_search; LGRID=20180921163107-af919ae7-bd78-11e8-bb56-5254005c3644; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1537518667; index_location_city=%E6%B7%B1%E5%9C%B3; SEARCH_ID=a81f58b5627b460b8180ad514b967cf1',

'Host': 'www.lagou.com',

'Origin': 'https://www.lagou.com',

'Referer': 'https://www.lagou.com/jobs/list_python?px=default&city=%E6%B7%B1%E5%9C%B3',

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',

'X-Anit-Forge-Code': '0',

'X-Anit-Forge-Token': 'None',

'X-Requested-With': 'XMLHttpRequest',

}

response = requests.post(url=url, data=form_data, headers=headers)

print(response.status_code)

print(response.json())

if __name__ == '__main__':

get_html()

转载于:https://juejin.im/post/5be57dbe6fb9a049b07cdb03

python爬虫系列(5.3-动态网站的爬取的策略)相关推荐

  1. Python爬虫系列之抖音热门视频爬取

    Python爬虫系列之抖音热门视频爬取 主要使用requests库以及手机抓包工具去分析接口 该demo仅供参考,已经失效,需要抖音2019年5月最新所有接口请点击这里获取 抖音资源获取接口文档请点击 ...

  2. Python爬虫系列之双色球开奖信息爬取

    Python基于Beautiful Soup库对双色球开奖信息进行爬取 代码仅供学习交流,请勿用于非法用途 小程序爬虫接单.app爬虫接单.网页爬虫接单.接口定制.网站开发.小程序开发 > 点击 ...

  3. Python实践 - 网络爬虫笔记 - 2、从网站上爬取公开信息

    Python实践笔记 - 2.从网站上爬取公开信息 张板书的Python的实践笔记,包括笔记与DeBug的经历. 为了完成一个比较麻烦的实习任务,尝试着做了这样一个爬虫项目. 任务要求之一是要检索安徽 ...

  4. Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片

    Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...

  5. Python爬虫:最牛逼的 selenium爬取方式!

    Python爬虫:最牛逼的 selenium爬取方式! 作为一个男人 在最高光的时刻 这是小编准备的python爬虫学习资料,加群:700341555即可免费获取! Python爬虫:最牛逼的 sel ...

  6. Python爬虫之scrapy框架360全网图片爬取

    Python爬虫之scrapy框架360全网图片爬取 在这里先祝贺大家程序员节快乐,在此我也有一个好消息送给大家,本人已开通了微信公众号,我会把资源放在公众号上,还请大家小手动一动,关注过微信公众号, ...

  7. 【EduCoder答案】Scrapy爬虫(二)热门网站数据爬取

    简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 Scrapy爬虫(二)热门网站数据爬取 >>>查看 第1关:猫眼电影排行TOP100信息 ...

  8. 进阶的爬虫系列 ——不得不说的贴吧爬取术

    进阶的爬虫系列 --不得不说的贴吧爬取术 感谢各位能点开我的这篇博文,才开始写,这个算是很简单的爬虫,文中如有错误和不足欢迎各位大神多多包涵指正,大家的建议是我不断前行的动力,废话不多说我们直接进入主 ...

  9. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程

    Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...

最新文章

  1. MySQL Workbench 怎么创建数据库
  2. 设置dialog显示,自定义时间到后dialog消失
  3. SQL基础篇---函数及其函数配套使用的关键字
  4. 【干货】容器适配器实现两个栈模拟队列
  5. Linux 系统中的定时任务及延时任务
  6. C语言学习之编程输入x,输出对应的y.
  7. 京东开通数字人民币“硬件钱包”线上消费功能
  8. opencv 打印文字_如何使用OpenCV+Python去除手机拍摄文本底色
  9. html表格 行 自动向上,javascript – 在bootstraptable中向上或向下移动行
  10. 5.2 Array类型
  11. 参数编码 完全解决方案 (转)
  12. Powershell下设置环境变量
  13. 知名厂商设备图标库大全
  14. livereload(自动刷新)
  15. 数据库mysql5.7 sqlyog的安装
  16. HDU 4699 Editor (对顶栈)
  17. R语言使用epiDisplay包的power.for.2p函数进行效用分析 ( 效能分析、Power analysis)、给定两个样本的比例值(proportions)、样本量计算效用值
  18. HTML-CSS-JS实现卫龙辣条旗舰店网页
  19. 数据库必看--WYL篇
  20. 前后端分离详解(转发)

热门文章

  1. 这一次,我拒绝了Python,选择了Go
  2. AI一分钟 | 万达网科裁员95%高达5000余人,被爆下一步将转型AI; 英伟达放话了:研究人员放心用,不更新驱动就没啥事儿
  3. 任务的插入时间复杂度优化到 O(1),Timing Wheel时间轮是怎么做到的?
  4. 牛逼!一个故事讲清楚 NIO 了
  5. 18个Java8日期处理的实践,太有用了!
  6. 怎么样做一个合格而又可爱的面试官
  7. Spring Boot Admin 2.1.0 全攻略
  8. NLP入门之路及学习方法:从任务实践入手!
  9. 512块A100,AlphaFold训练时间从11天压缩至67小时
  10. 清朝人如何变戏法?带你来看AI修复的1904年老电影(滑稽慎入)