python爬虫教程(一)
Python版本:python3.6
使用工具:pycharm
一、第一个爬虫程序
获得网址源代码。如下图获取百度页面源代码
二、Web请求过程
1. 服务器渲染:在服务器中直接把数据和html整合在一起,返回给浏览器。(在页面源代码中能看到数据)
2. 客户端渲染:第一次请求只要一个html骨架,第二次请求拿到数据,进行数据展示。(在页面源代码中,看不到数据)
三、requests入门
1. 获取搜狗引擎搜索周杰伦页面源代码。
2. 出现报错,网页存在反爬,处理反扒。
3. 修改代码,使其更加灵活获取不同搜索内容对应不同页面源代码。
4.当请求方式为POST时,以百度翻译为例获取页面源代码。
5. 当想要爬取数据与网页框架不在一起时。以豆瓣电影排行榜为例。需先找到所需爬取数据位置。
将其参数变量进行封装,补充网址参数,其参数信息位置及代码如下:
注意:使用完爬虫程序后,关闭爬虫程序。
如上示例需使用resp.close()关闭爬虫程序。
四、数据解析
本文中将介绍三种解析方式:re解析、bs4解析、xpath解析。
1. re解析:Regular Expression,正则表达式,一种使用表达式的方式对字符串进行匹配的语法规则。
优点:速度快、效率高、准确性高
缺点:上手难度较高
语法:使用元字符进行排列组合用来匹配字符串(元字符是具有固定含义的特殊符号),常用元字符:
. 匹配除换行符以外的任意字符 a|b 匹配字符a或b
\w 匹配字母或数字或下划线 \W 匹配非字母或数字或下划线
\s 匹配任意空白符 \S 匹配非空白符
\d 匹配数字 \D 匹配非数字
[…] 匹配字符组中的字符 [^…] 匹配除字符组中的所有字符
^ 匹配字符串的开始 $ 匹配字符串的结束
量词:控制元字符出现的次数
* 重复零次或多次
+ 重复一次或多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
(1)re模块使用,findall() 匹配字符串中所有的符合正则的内容
(2)finditer()匹配字符串中所有的内容,返回迭代器
从迭代器中拿出内容需要.group()
(3)search,找到一个结果就返回,返回的结果是match对象,拿数据需使用.group()
(4)match,从头开始匹配
当选取数据开始即为所需数据时,可输出结果。
(5)预加载正则表达式,可重复使用
(6)正则中内容单独提取。我们将想要提取内容部分定义组(?P<分组名字>正则),然后使用.group()提取某个组的内容。(re.S:让.能够匹配换行符)
2. 实战爬取豆瓣Top250电影信息。
(1)使用requests,拿到页面源代码。
(2)使用re,解析数据
设定爬取以上四个数据,电影名字、年份、评分、评价人数,在页面源代码中找到所需内容位置(红色框),并找到内容定位方法及位置(白色框)
解析数据:其中.strip()去掉年份前面空格。
将获取到文件保存为文件。导入csv,将内容存入字典,同理year需单独处理。
输出文件data.csv内容
3. 实战爬取电影天堂下载链接,目标爬取2021必看热片信息。
(1)获取页面源代码
如上输出结果中存在乱码问题,我们默认使用的字符集为utf-8,可看到其网站的字符集为gb2312,需要指定使用字符集解决乱码问题。
(2)定位到2021必看热片,在页面源代码中找到所需位置。
(3)从2021必看热片中提取到子页面的链接地址
得到的子页面链接不完整,缺少域名,需要进行一个链接的拼接。
得到了完整的子页面链接,将子页面链接保存起来。
提取子页面内容,输出得到片名及下载链接。
python爬虫教程(一)相关推荐
- python爬虫抓取图片-简单的python爬虫教程:批量爬取图片
python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...
- python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)
Python爬虫教程-17-ajax爬取实例(豆瓣电影) ajax: 简单的说,就是一段js代码,通过这段代码,可以让页面发送异步的请求,或者向服务器发送一个东西,即和服务器进行交互 对于ajax: ...
- 爬虫python代码-Python爬虫教程:200行代码实现一个滑动验证码
Python爬虫教程:教你用200行代码实现一个滑动验证码 做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动.点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文章大 ...
- 下载 | 9G火爆的Python爬虫教程+ 520页《图解机器学习》
前段时间,小伙伴多次在后台留言询问Python爬虫教程的问题.经过这两个多月以来的收集与整理,汇集了多个高校以及公开课视频教程,包括python爬虫的入门.进阶与实践,共9G左右.爬虫作为机器学习语料 ...
- python读取html_从零开始的Python爬虫教程(一):获取HTML文档
前言:在上一节从零开始的Python爬虫教程(零):粗识HTML结构中,粗略给大家介绍了一下HTML文档,是为了在接下来的教程中让大家更容易理解和掌握.在接下来的教程中,需要大家提前安装python3 ...
- python爬虫代码-Python爬虫教程:200行代码实现一个滑动验证码
Python爬虫教程:教你用200行代码实现一个滑动验证码 做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动.点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文章大 ...
- 无敌python爬虫教程学习笔记(一)
python爬虫系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 本文目录 ...
- 无敌python爬虫教程学习笔记(二)
系列文章目录 无敌python爬虫教程学习笔记(一) 无敌python爬虫教程学习笔记(二) 无敌python爬虫教程学习笔记(三) 无敌python爬虫教程学习笔记(四) 手刃一个小爬虫 系列文章目 ...
- Python爬虫入门教程:超级简单的Python爬虫教程
这是一篇详细介绍 [Python]爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫. 这篇 Python 爬 ...
- Python爬虫教程(一):基础知识
目录 01 基础知识 1.1 渲染 1.2 http(超文本传输协议)协议 1.3 requests进阶 02 数据解析 2.1 re模块 2.2 bs4模块 2.3 xpath模块 01 基础知识 ...
最新文章
- java编写socket使用bufferedReader.readLine()问题研究
- Python多线程——LOCK锁
- 再严重的感冒,马上就好!!
- 如何使用Linux的Crontab定时执行PHP脚本的方法
- Python超级码力在线编程大赛初赛题解
- 发布谷歌离线地图瓦片
- python用openpyxl模块操作Excel学习笔记
- Hbase的过滤器分类
- c盘分小了如何扩大c盘,重新分区扩大c盘
- 播放器音视频同步及网络抖动解决方案
- net core 微服务 快速开发框架 Viper 初体验
- 台式电脑c语言如何安装,台式电脑怎么安装电源 组装机正确安装电源的方法
- npm install --save-dev
- 电影数据库开发设计——基于jsp(使用eclipse-jee,mysql-front)
- 新特性:TabLayout动态添加条目
- 安防工程商遇六大挑战考验 能否披荆斩棘?
- Linux系统日志管理(redhat)
- 我们正处在大数据时代,浅谈大数据
- FileZilla Server源码分析(1)
- vue自定义指令控制角色权限