一、什么是网页的http请求?

Get请求:地址栏上明文显示了请求信息,即请求地址中带有符号 ? 的地址。请求速度快,但不安全

例如:

请求参数 wd 表示查询字段pn表示页数,即pn=0 -->第一页 pn = 10 -->第二页

POST请求:请求地址中不带POST表单数据,加密传输,常用于账号登录,很安全,但和前者相比速度慢。

例如:

二、什么是http请求头

告诉请求地址服务器,客户端的配置情况

练习:爬取百度搜索结果的前十页信息

python 代码

def baidu(wd="Curious chen"):#headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",}# 正则1:找到每一页的所有链接data_match = r"data-tools=[\'\"]{1}({(.*?)})[\'\"]"# 正则2:将链接中的标题和url提取出来s_match = r".*title.*?:[\'\"](.*?)[\'\"].*?url.*?:[\'\"](.{4,})[\'\"]\}"# 读取百度搜索结果的前十页for i in range(10):pn = i * 10response = requests.get("https://www.baidu.com/s?wd=" + wd + "&pn=" + str(pn), headers=headers)datas = re.findall(data_match, response.text)print("第" + str(i+1) + "页")for s_json in datas:# 正则3  将&quot换成{“}s_json = re.sub(r'"', '"', s_json[0])s_json = re.match(s_match, s_json)print("     title:" + s_json.group(1), "url:", s_json.group(2))if __name__ == "__main__":query = "飞猪"baidu(query)

运行结果:

三、静态网页和动态网页

静态网页:网页中的所有数据,都在源代码中,请求一次链接均可得到。

动态网页:部分数据须经js渲染,动态添加到网页中,一次请求得到的源代码中的动态数据会错误或是不存在。

实战:飞猪旅游网站一旅游点的所有动态数据

此旅游点的部分动态数据如下:


判断是动态数据的条件:源网页中数据不存在,或错误。

第一步:右键 -->查看源代码(或使用快捷键 Ctrl + U),打开源代码页。

第二步:使用快捷键 Ctrl + F 打开搜索栏

第三步:输入上述图片所述的动态数据,

如何请求,或者说找到这些动态数据

第一步:右键 --> 检查 (或快捷键 F12)打开浏览器后台工作栏
第二步:选择功能栏上的Network,然后选择ALL所有数据类型
第三步,Ctrl + F 打开全局搜索栏
第四步:刷新页面

比较重要的两个功能键

第五步:搜索

第六步:查看请求头,分析请求头需要加上哪些参数,GET的请求参数怎么获得

经分析:获得每一个景点的动态数据只需要改变GET请求 id 参数即可

    headers = {"Referer": referer,"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)"" Chrome/74.0.3729.169 Safari/537.36"}response = requests.get("https://traveldetail.fliggy.com/async/queryItemDetailAjaxInfo.do?id="+str(id)+"&categoryType=7",headers=headers)

请求头加上referer,user-agent参数即可

第七步:分析json数据,提取需要的动态数据

python爬虫实践篇--------飞猪网站资料爬取相关推荐

  1. Python爬虫学习教程 bilibili网站视频爬取!【附源码】

    Python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...

  2. python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

    原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...

  3. python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...

    Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...

  4. Python爬虫《自动化学报》数据爬取与数据分析

    Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...

  5. 基于python爬虫————静态页面和动态页面爬取

    基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...

  6. Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影

    文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...

  7. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  8. Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行

    Python爬虫学习基础--5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的.运用的知 ...

  9. Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价

    Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...

最新文章

  1. 利用 .NET Framework 命令行工具
  2. Linux 下的tar常用命令及操作
  3. IRP和IO_STACK_LOCATION
  4. 苦逼了6年,我今天终于把老板开了!哼!
  5. 基于业务和平台理解数字营销概念
  6. 判断Javascript变量类型的函数
  7. Java中GC (Allocation Failure)日志分析实战
  8. 学习笔记:工厂方法模式及简单工厂模式的对比
  9. MarkdownPad在win10安装不能预览的问题Awesomium安装
  10. java swing 颜色_Java Swing按钮颜色
  11. 大学生网页制作之美食篇html+css静态网页设计
  12. 贪心法 第3关:将真分数用埃及分数之和表示
  13. Torch安装及使用
  14. 【荔枝派zero】usb虚拟串口实现
  15. 《第一桶金怎么赚——淘宝开店创业致富一册通》一一1.1 创业者需具备的素质...
  16. Typora下载安装及使用方法
  17. 云栖科技评论第70期:数字时代需要双螺旋
  18. MRC与QA在信息抽取任务中的相关应用总结
  19. 为Apple Watch设计:素描设计
  20. 关于虚拟机检测技术的研究

热门文章

  1. EurekaServer这几个错误 你可以这样解决
  2. 美国的ACH支付体系
  3. 科尔沃擦窗机器人耗电_扫地机器人耗电量大吗
  4. 一个WEB应用的开发流程
  5. 面试结束时应该向面试官提出什么问题
  6. win32应用程序内存不足
  7. linux挂载u盘显示目录忙,linux下挂载u盘及iso8859-1 not found错误解决
  8. 如何控制CentOS8的启动过程
  9. C++ Primer Plus 第九章编程题练习
  10. 什么是SpringData