Python爬虫系列(1)
1.什么是爬虫
请求网站并提取数据的自动化程序。
换句话就是说,我们通过编写代码,模拟成浏览器,请求目标网页,并通过代码提取符合我们查找规则的数据,保存到数据库中。
2.爬虫的基本流程
(1)发起请求
通过HTTP库向目标站点发起请求,即发起一个Request,请求可以包含额外的headers等信息,等待服务器响应。
(2)获取响应内容
如果服务器能正常响应,会得到一个Response,Response的内容是所需要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。
(3)解析内容
得到的内容可能是HTML,可以使用正则表达式、网页解析库进行解析,可能是Json,可以直接转为Json对象解析,可能是二进制,可以做保存,或者进一步分析。
(4)保存数据
保存兴时多样,可以保存成文本,也可以保存到数据库。
3. Request 与Response
(1)浏览器就发送消息给该网址所在的服务器,这个过程叫做HTTP Request.
(2)服务器收到浏览器发送的消息后,能够根据浏览器发送的消息的内容,做相应处理,然后把消息回传给浏览器。这个过程叫做HTTP Response。
(3)浏览器收到服务器的Response信息后,会对信息进行相应的处理,然后展示。
Request
(1)请求方式
主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等。
(2)请求URL
URL:统一资源定位符
(3)请求头
包含请求时的头部信息,如User-Agent、Host、Cookies等信息。
(4)请求体
post请求时的Form Data
Response
(1)响应状态
有多种响应状态,如200代表成功、301跳转、404找不到页面、502服务器错误
(2)响应头
如内容类型、内容长度、服务器信息,设置Cookie等
(3)响应体
最主要的部分。包含了请求资源的内容,如网页HTML,图片、二进制数据等。
可以抓取什么数据
(1)文本
(2)图片
(3)视频
(4)其他
解析方式:
(1)直接处理
(2)Json解析
(3)正则表达式
(4)BeautifulSoup
(5)PyQuery
解析方式: