python爬虫实践篇--------飞猪网站资料爬取
一、什么是网页的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 将"换成{“}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爬虫实践篇--------飞猪网站资料爬取相关推荐
- Python爬虫学习教程 bilibili网站视频爬取!【附源码】
Python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
- Python爬虫《自动化学报》数据爬取与数据分析
Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
- Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影
文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...
- Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息
Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...
- Python爬虫学习基础——5分钟学会爬取B站视频日播放量排行
Python爬虫学习基础--5分钟学会爬取B站视频日播放量排行 基础包含 requests pyquery 进入正题 基础包含 这也是我当初第一次学习爬虫时做的练习,感觉给初学者练笔挺不错的.运用的知 ...
- Python爬虫系列(二):爬取中国大学排名丁香园-用户名和回复内容淘宝品比价
Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品比价 目录 Python爬虫系列(二):爬取中国大学排名&丁香园-用户名和回复内容&淘宝品 ...
最新文章
- 利用 .NET Framework 命令行工具
- Linux 下的tar常用命令及操作
- IRP和IO_STACK_LOCATION
- 苦逼了6年,我今天终于把老板开了!哼!
- 基于业务和平台理解数字营销概念
- 判断Javascript变量类型的函数
- Java中GC (Allocation Failure)日志分析实战
- 学习笔记:工厂方法模式及简单工厂模式的对比
- MarkdownPad在win10安装不能预览的问题Awesomium安装
- java swing 颜色_Java Swing按钮颜色
- 大学生网页制作之美食篇html+css静态网页设计
- 贪心法 第3关:将真分数用埃及分数之和表示
- Torch安装及使用
- 【荔枝派zero】usb虚拟串口实现
- 《第一桶金怎么赚——淘宝开店创业致富一册通》一一1.1 创业者需具备的素质...
- Typora下载安装及使用方法
- 云栖科技评论第70期:数字时代需要双螺旋
- MRC与QA在信息抽取任务中的相关应用总结
- 为Apple Watch设计:素描设计
- 关于虚拟机检测技术的研究