目录

一、数据解析

1.3原理​编辑

1.4编码流程

二、图片数据爬取

三、正则表达式

3.1一般形式:又臭又长

3.2在线检查网站  https://regex101.com/

3.2.0普通字符:直接匹配·

3.2.1点-匹配所有字符                表示要匹配除了换行符之外的任何[单个字符。

3.2.2星号.重复匹配任意次*表示匹配前面的子表达式任意次,包括0次。

3.2.3加号.重复匹配多次+表示匹配前面的子表达式-次或多次,不包括0次。

3.2.4花括号~匹配指定次数花括号表示前面的字符匹配指定的次数

3.2.5贪婪模式与非贪婪模式

3.2.6反斜杠N在正则表达式中有多种用途。转义

3.2.7方括号-匹配某几种类型方括号表示要匹配某几种类型的字符。​编辑

3.2.8正则表达式可以设定[单行模式和多行模式}如果是单行模式,表示匹配整个文本的开头位置。如果是多行模式,表示匹配文本每行的开头位置。

3.2.9括号-组选择括号称之为正则表达式的组选择。是从正则表达式 匹配的内容里面扣取出其中的某些部分

3.2.10使用正则表达式切割字符串

3.2.11指定替换函数

​编辑 四、正则解析案例


一、数据解析

1.1聚焦爬虫:爬取页面中指定的页面内容

1.2数据解析分类: 正则   bs4   xpath

1.3原理

1.4编码流程

指定urL
发起请求
获取响应数据
数据解析
持久化存储

二、图片数据爬取

import requests
url = "https://image.baidu.com/search/albumsdetail?tn=albumsdetail&word=%E5%9F%8E%E5%B8%82%E5%BB%BA%E7%AD%91%E6%91%84%E5%BD%B1%E4%B8%93%E9%A2%98&fr=searchindex_album%20&album_tab=%E5%BB%BA%E7%AD%91&album_id=7&rn=30"
imgdata = requests.get(url=url).content
with open('./12.jpg','wb') as fp:fp.write(imgdata)

三、正则表达式

3.1一般形式:又臭又长

content = '''Python3高级开发工程师上海互教教育科技有 限公司.上海-浦东新区 2万/月02-18满员
测试开发工程师(C++/python)上海 墨鹛数码科技有限公司上海-浦东新区 2.5万/每月02- 18未满员
Python3开发工程师上海德拓信 息技术股份有限公司上海-徐汇区 1.3万/每月02-18剩余11人
测试开发工程师(Python)赫里普(上海)信息科技有限公司上海-浦东新区 1.1万/每月02-18剩余5人
Python高级开发工程师上海行动教育科技 股份有限公司上海-闵行区 2.8万1月02-18剩余255人
python开发工程师上海优似腾软件开发有 限公司上海-浦东新区 2.5万/每月02-18满员'''
#将文本内容按行放入列表
lines = content.splitlines()
for line in lines:#查找.万/月’在字符串中什么地方pos2 = line.find('万/月')if pos2 < 0:#查找*万/每月在字符串中什么地方pos2 = line.find('万/每月')#都找不到if pos2 < 0:continue#执行到这里,说明可以找到薪资关键字#接下来分析薪资数字的起始位置#方法是找到pos2前面薪资数字开始的位置idx = pos2-1#只要是数字或者小数点,就继续往前面找while line[idx].isdigit() or line[idx]=='.':idx -= 1#现在idx指向薪资数字前面的那个字,#所以薪资开始的索引就是idx+1 pos1=idx+1print(line[pos1:pos2])

正则表达形式:

content = '''Python3高级开发工程师上海互教教育科技有 限公司.上海-浦东新区 2万/月02-18满员
测试开发工程师(C++/python)上海 墨鹛数码科技有限公司上海-浦东新区 2.5万/每月02- 18未满员
Python3开发工程师上海德拓信 息技术股份有限公司上海-徐汇区 1.3万/每月02-18剩余11人
测试开发工程师(Python)赫里普(上海)信息科技有限公司上海-浦东新区 1.1万/每月02-18剩余5人
Python高级开发工程师上海行动教育科技 股份有限公司上海-闵行区 2.8万1月02-18剩余255人
python开发工程师上海优似腾软件开发有 限公司上海-浦东新区 2.5万/每月02-18满员'''
import re
p = re.compile(r'([\d.]+)万/每{0,1}月')
for one in p.findall( content):print(one)

3.2在线检查网站  https://regex101.com/ 

3.2常见语法

3.2.0普通字符:直接匹配·

元字符:它们出现在正则表达式字符串中,不是表示直接匹配他们,而是表达一 些特别的含义。
这些特殊的元字符包括下面这些:
  .  *  +  ?  \  [  ]  ^  $  {  }  |  (  )

3.2.1点-匹配所有字符
                表示要匹配除了换行符之外的任何[单个字符。

content = '''Python3高级开发工程师上海互教教育科技有限公司.上海-浦东新区 2万/月02-18满员
测试开发工程师(C++/python)上海 墨鹛数码科技有限公司上海-浦东新区 2.5万/每月02- 18未满员
Python3开发工程师上海德拓信息技术股份有限公司上海-徐汇区 1.3万/每月02-18剩余11人
测试开发工程师(Python)赫里普(上海)信息科技有限公司上海-浦东新区 1.1万/每月02-18剩余5人
Python高级开发工程师上海行动教育科技股份有限公司上海-闵行区 2.8万1月02-18剩余255人
python开发工程师上海优似腾软件开发有限公司上海-浦东新区 2.5万/每月02-18满员'''
import re
p = re.compile(r'........公司')
for one in p.findall( content):print(one)

3.2.2星号.重复匹配任意次
*表示匹配前面的子表达式任意次,包括0次。 

content = '''苹果,是绿色的
橙子,是橙色的
香蕉,是黄色的
乌鸦,是黑色的'''
import re
p = re.compile(r',.*')
for one in p.findall( content):print(one)

●紧跟在.后面,表示任意字符可以出现任意次,所以整个表达式的意思就是在逗号后面
的所有字符,包括逗号

3.2.3加号.重复匹配多次
+表示匹配前面的子表达式-次或多次,不包括0次。

3.2.4花括号~匹配指定次数
花括号表示前面的字符匹配指定的次数

特殊/d{  }表示数字出现 

3.2.5贪婪模式与非贪婪模式

贪婪模式:*  +  ? 都是贪婪的,会尽可能多匹配

非贪婪模式:r'.*?'

3.2.6反斜杠N在正则表达式中有多种用途。
转义

反斜杠后面接一些字符, 表示匹配某种种类型的一个字符

3.2.7方括号-匹配某几种类型
方括号表示要匹配某几种类型的字符。

注意:1.一些元字符在方括号内失去了魔法,变得和普通字符一样了,例如 .

2.如果在方括号中使用^表示非方括号里面的字符集合。

3.2.8正则表达式可以设定[单行模式和多行模式}
如果是单行模式,表示匹配整个文本的开头位置。
如果是多行模式,表示匹配文本每行的开头位置。

^表示匹配文本的开始位置

第二参数:re.S单行模式匹配

re.M多行模式

re.A Ascii

$表示匹配文本的结束位置。 

3.2.9括号-组选择
括号称之为正则表达式的组选择。是从正则表达式 匹配的内容里面扣取出其中的某些部分

content = '''苹果,是绿色色色的
橙子,是橙色的
香蕉,是绿色的
乌鸦,是绿'''
import re
p = re.compile(r'^(.*),',re.M)
for one in p.findall(content):print(one)

3.2.10使用正则表达式切割字符串

import re
names = '关羽;张飞,赵云,马超,黄忠    李逵'
namelist = re.split(r'[;,\s]\s*', names)
print (namelist)

3.2.11指定替换函数

 四、正则解析案例

分页

网络爬虫快速入门(二)相关推荐

  1. python3 爬虫实例_【实战练习】Python3网络爬虫快速入门实战解析(上)

    原标题:[实战练习]Python3网络爬虫快速入门实战解析(上) 摘要 使用python3学习网络爬虫,快速入门静态网站爬取和动态网站爬取 [ 前言 ] 强烈建议:请在电脑的陪同下,阅读本文.本文以实 ...

  2. Python教程:网络爬虫快速入门实战解析

    建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...

  3. Python3网络爬虫快速入门实战解析

    Python3网络爬虫快速入门实战解析 标签: python网络爬虫 2017-09-28 14:48 6266人阅读 评论(34) 收藏 举报 分类: Python(26) 作者同类文章X 版权声明 ...

  4. Python3 网络爬虫快速入门实战解析

    点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...

  5. beautifulsoup网页爬虫解析_Python3 网络爬虫快速入门实战解析

    点击上方"Python高校",关注 文末干货立马到手 作者:Jack Cui http://cuijiahua.com/blog/2017/10/spider_tutorial_1 ...

  6. Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫)

    Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫) https://blog.csdn.net/u012662731/article/details/78537432 出 ...

  7. Python 爬虫---(7) Python3网络爬虫快速入门实战解析

    转载请注明作者和出处: http://blog.csdn.net/c406495762  Github代码获取:https://github.com/Jack-Cherish/python-spide ...

  8. python3.7快速入门_PYTHON 3.7网络爬虫快速入门

    Python 3.7正在成为目前流行的编程语言,而网络爬虫又是Python网络应用中的重要技术,二者的碰撞产生了巨大的火花.本书在这个背景下编写而成,详细介绍Python 3.7网络爬虫技术. 本书分 ...

  9. python——网络爬虫快速入门【reuqests篇】

    2.3 pip的使用和虚拟环境的介绍 pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能. 官方提供的pip 示例 $ pip insta ...

最新文章

  1. 高大上的Android沉浸式状态栏?
  2. 仿写thinkphp的I方法
  3. php 单元测试分享,今日分享:代码整洁之道- 单元测试
  4. 卸载win10装Ubuntu笔记
  5. Ibatis学习总结2--SQL Map XML 配置文件
  6. Java List 的merge
  7. 64位 linux 中 oracle 11g dbca 报 out of memory 错误
  8. Kylin 2.0 Spark Cubing 优化改进
  9. 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
  10. 从团购的“占便宜”心态说起
  11. 使用.tar文件 升级cisco 3550 IOS
  12. ccd视觉定位教程_CCD视觉定位激光打标机的工作原理
  13. 键盘按键损坏 注册表更改_如何彻底清洁键盘(不损坏任何东西)
  14. 中国大陆五级行政区划数据爬虫
  15. 北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解 道翰天琼认知智能api机器人接口1。
  16. mysql远程连接3306不通问题
  17. [转] 25岁,我习得了自愈近视的魔法
  18. AI绘图打开二次元世界
  19. 服务器挖矿病毒的排查过程
  20. vscode使用vetur解决代码换行、格式化、常量问题

热门文章

  1. Android如何调用支付宝支付 微信支付
  2. day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数
  3. matlab实现希尔排序,C语言希尔排序算法
  4. java 生成二维码 qr
  5. 华为上半年手机销量_2019上半年手机销量排行榜出炉,华为一骑绝尘,魅族联想上榜...
  6. 《web应用安全》被动攻击与同源策略
  7. html中图片鼠标滑过偏移,jQuery和css3鼠标滑过网格相邻图片浮动效果
  8. Python类定义字类变量与实例变量
  9. 统计扣分加分java_再也不怕违章扣分了,驾照也能够加分,最高+21分!快来看怎么加...
  10. 思维造物IPO:从知识付费到终身教育,罗振宇的新故事可行吗?