0%

python爬虫二

Python 爬虫入门二

爬虫的基本结构

  • 对于爬虫来说,基本结构可以分解为:请求,解析,储存,然后再这三大步骤中在进行细分:调度器,储存队列优先级等对请求对象,数据库储存对象等,下面仅仅是简单的介绍应用而已.

请求器初级

  • 大家都知道,我们的日常上网行为都是在浏览器上进行的,也许有人清楚地知道网络行为,实际上我们在浏览每一个网页时候,都会向服务器进行request后,服务器就会define request,然后发送response给客户端,客户端再进行确认后,渲染到浏览器上,其中用户交互时,会不断的get,post数据data到服务器,数据再实现相应的回应请求,这样基本就实现了请求功能.
  • 为什么用python进行爬虫研究呢,主要是python开发时间短,而且第三方库引进可以大大减少造轮子的时间,大部分请求的工作可以直接引用k神的requests这个package就可以实现基本的请求功能了.
  • 首先安装该库
1
pip install requests
  • 对网址进行请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# -*- coding : utf-8 -*-

import requests

def get_response():

url='www.baidu.com'

response=requests.get(url=url) #请求数据

if response.status_code==200:

res1=response.text #编码response

res2=response.content.decode('utf-8') #编码response

else:

print("requests fail")

pass

if __name__ == "__main__":

get_response()
  • 关于编码模式

text 由官方文档介绍,可以理解为:根据HTTP头部请求的编码模式,智能对服务器的内容进行编码.

content 可以理解为:以字节的方式请求数据流,然后自己自定义编码数据字节内容.

  • 关于参数,下面我自己列出来几个比较常用的参数
参数 类型 例子
url str url地址
data dict,str 请求数据
allow_redirects True 定义重定向
headers dict 自定义请求头
params dict 请求参数字典类型
timeout float 设定服务器响应时间

解析器

  • 关于解析器,其实大部分来说是前端的基本内容,比如网页的嵌套等,直接来说就是剔除没有用的数据,获取自己想要的数据.

  • 解析器其实就是对文本内容进行增减删改操作,按照自己定义的规则解析内容,小型解析可以直接用正则表达式直接上,我刚开始的时候也是直接正则提取,因为beautifulsoup,和xpath框架使用的规则比较繁琐,对于初级者来说,也许还要基本了解以下前端网页的节点关系,但是再过段时间,xpath等框架确实比正则便捷多了,直接构造规则,而且稳定性比正则好,因为节点不容易改变,而内容可以变化.

储存器

  • 顾名思义,就是把数据给储存到文件或者数据库中,小型的文件就直接保存文件,大型的数据可以储存到数据库中,其中pymysplpymongo库直接和myspl,mongo数据库建立联系,便于调用储存,包装为库后,只需要端口和用户密码即可储存数据,大大提高了工作效率.

后续

  • 作为初学者,我们可以了解为什么爬虫的结构要分成这样,因为后期爬虫框架已经非常成熟,例如强大的scrapy框架直接封装爬虫结构,只需要在设置填写几个参数,设置优先级以及构造爬写规则,它就可以自动爬取数据了,但是至于它是如何实现这些功能的,这就需要我们在初级时候通过分部学习爬虫的结构和基本理解爬虫原理,只有如此,我们才能更好的使用框架来进行数据爬取.
-------------本文结束感谢您的阅读-------------