Python学习(笔记3-网络爬虫)

数据爬虫相关代码例子已上传****

1.NumPy (Numeric Python) :用Python实现的科学计算库

  • 强大的N维数组对象array
  • 成熟的科学函数库
  • 实用的线性代数、随机数生成函数等
  • NumPy的操作对象是多维数组ndarray       ndarray.shape数组的维度
  • 创建数组: np.array(<list>) , np.arrange()
  • 改变数组形状reshape()

2.JSON格式
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,可以对复杂数据进行表达和存储 ,易于阅读和理解
规则:

  • 数据保存在键值对中
  • 键值对之间由逗号分隔
  • 花括号用于保存键值对数据组成的对象
  • 方括号用于保存键值对数据组成的数组

采用对象、数组方式组织起来的键值对可以表示任何结构的数据,JSON格式是互联网上主要使用的复杂数据格式之一

[
    {
        "aqi":47,
        "area":"北京" ,
        "position_name":"万寿西宫",
        "time_point": "2017-07-29" 
    },
    {
        "aqi":63,
        "area":"北京”,
        "position_name" :"定陵”,
        "time_ point":"2017-07-29"
    }
]

3.JSON库

  • JSON库是处理JSON格式的Python标准库
  • 两个过程:

       编码(encoding) ,将Python数据类型转换成JSON格式的过程
       解码(decoding) ,从JSON格式中解析数据对应到Python数据类型的过程

4.CSV格式
CSV(Comma- Separated Values)是一种通用的、相对简单的文件格式,在商业和科学领域上广泛使用
规则:

  • 以行为单位
  • 每行表示一条记录
  • 以英文逗号分割每列数据(如果数据为空 ,逗号也要保留)
  • 列名通常放置在文件第一 行
aqi,area,pm2_5,pm2_ 5_ 24h,position_name,primary_pollutant,quality,station_code,time_point
47,北京,32,33,万寿西宫,优,1001A,2017-07-29T14:00:00Z
63,北京,37,20,定陵,颗粒物(PM10),良,1002A,2017-07-29T14:00:00Z
  • import CSV
  • csv.writerow(list) #将列表中的元素写入文件的一行中

5.os模块:提供了与系统、目录操作相关的功能,不受平台的限制

6.网络爬虫:自动抓取互联网信息的程序 ;利用互联网数据进行分析、 开发产品

步骤:

  • 通过网络链接获取网页内容
  • 对获得的网页内容进行处理

url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

7.requests模块

  • requests模块是一一个简洁且简单的处理HTTP请求的工具
  • 支持非常丰富的链接访问功能,包括URL获取、 HTTP会话、Cookie记录等

requests网页请求


requests对象属性

8.网页解析:结构化解析 ; DOM (Document Object Model) ,树形结构

9.BeautifulSoup解析网页
BeautifulSoup:用于解析HTML或XML;pip install beautifulsoup4;import bs4

步骤:

  • 创建BeautifulSoup对象
  • 查询节点:find ,找到第一一个满足条件的节点;find_ all, 找到所有满足条件的节点

创建对象

  • 创建BeautifulSoup对象
bs= BeautifulSoup(
    url, 
    html_ parser, #指定解析器
    enoding  #指定编码格式(确保和网页编码格式一致)
)

 查找节点

  •  <a href='a.html' class='a_ link'>next page</a>
  • 可按节点类型、属性或内容访问
  • 按类型查找节点bs.find_ all('a')
  • 按属性查找节点
bs.find all(“a', href='a.html')
bs.find all('a', href=* a.html', string‘next page')
bs.find_ all("a', class_ =‘a_ link') #注意:是class_
#或者bs.find all('a', {'class':'a_ link'})
发布了40 篇原创文章 · 获赞 3 · 访问量 7596

猜你喜欢

转载自blog.csdn.net/OpenSceneGraph/article/details/100780911