前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据解析

数据解析

作者头像
py3study
发布2020-01-20 10:41:07
4000
发布2020-01-20 10:41:07
举报
文章被收录于专栏:python3python3

数据解析流程

代码语言:javascript
复制
1.指定url
2.发起请求
3.获取页面数据
4.解析数据
5.持久化存储

三种数据解析方式 :正则,xpath,bs4

正则

代码语言:javascript
复制
import re
# 提取出python
key = 'javapython-php'
re.findall('python',key)
re.findall('python',key)[0]
代码语言:javascript
复制
# 提取helloworld
key = '<html><h1>hello world</h1></html>'
re.findall('<h1>(.*?)</h1>',key)[0]
代码语言:javascript
复制
# 提取 170
string = '我喜欢身高170的女生'
re.findall('\d+',string)[0]
代码语言:javascript
复制
# 提取出http:// 和https://
key = 'http://www.baidu.com and https://bobo.com'
#方法一   ? 出现0次或一次
re.findall('https?://',key)
# 方法二
re.findall('https{0,1}://',key)
代码语言:javascript
复制
# 提取出hit.
key = 'bobo@hit.edu.com'
re.findall('h.*\.',key) #['hit.edu.'] 贪婪模式下,尽可能多的匹配
re.findall('h.*?\.',key) # 加一个问号,切换到非贪婪模式
代码语言:javascript
复制
# 匹配sas或者saaas
key = 'saas and sas saaas'
re.findall('sa{1,2}s',key)
代码语言:javascript
复制
# 匹配出i开头的行  re.S-基于单行匹配  re.M-基于多行匹配
key ='''fall in love with you 
i love you very much
i love you
i love you 
'''
re.findall('^i.*',key,re.M)
代码语言:javascript
复制
# 匹配所有的行
key = '''<div>静夜思
窗前明月光
疑是地上霜
举头望明月
低头思故乡
</div>'''
re.findall('<div>.*</div>',key,re.S)

练习

代码语言:javascript
复制
 1 import requests
 2 import re
 3 import os
 4 # 指定url
 5 url = 'https://www.qiushibaike.com/pic/'
 6 # 自定义请求头信息
 7 headers={
 8     'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
 9 
10 }
11 # 发起请求
12 response=requests.get(url=url,headers=headers)
13 # 获取页面数据
14 page_text = response.text
15 # 数据解析
16 img_list=re.findall('<div class="thumb">.*?<img src="(.*?)".*?>.*?</div>',page_text,re.S)
17 
18 #创建一个存储图片的文件夹
19 if not os.path.exists('./imgs'):
20     os.makedirs('./imgs')
21     
22 for url in img_list:
23     img_url='https:'+url
24     img_data=requests.get(url=img_url,headers=headers).content
25     imgName = url.split('/')[-1]
26     imgPath = 'imgs/'+imgName
27     with open(imgPath,'wb')as fp:
28         fp.write(img_data)
29         print(imgName+"写入成功")
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据解析流程
  • 三种数据解析方式 :正则,xpath,bs4
    • 正则
      • 练习
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档