1.什么是爬虫?
请求网站并提取数据的自动化程序
请求:客户端向服务端发送请求获得网页资源,是一段html代码,包含html标签和一段信息。
提取:提取出想要的信息,然后将结构化的数据存储到文本
自动化:写完程序一直运行着,代替客户端向服务端发送请求,可以大量的获得数据
爬虫四部
1.发起请求:通过http库向发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
2 .获取响应内容:如果服务器能正常响应,会获得一个Response,Response内容便是所要获取的页面内容。类型可能有htmlmjson字符串,
二进制数据,如图片、视频等类型。
3.解析内容:得到的内容可能是html,可以用正则表达式,网页解析库进行解析,可能是json,可以直接转换为json对象解析,可能是二进制数据,
可以作保存或者进一步的处理。
4.保存数据:保存形式多样,可以保存文本,也可以保存数据库,也可以保存特定格式的文件。
请求的参数包含在哪一个方面。
get请求直接输入url回车
post请求需要构建表单,点击表单提交,登陆账户点击提交就是发送post请求,因为登陆账户会有隐私,不能直接放在url里,需要做成表单提交。
1. Request主要构成
请求方式:主要有get,post两种方式,其他的方式还有head,put,delete,options。
request method
请求URL:url全称资源统一定位符。任何一个软件,文档,资源都可以用url来唯一确定。
requeset url
请求头:包含请求时的头部信息。如user_Agent,cookies,Host
request headers
请求体:请求时额外携带的数据。如表单提交时的表单数据。
提交表单时候的表单数据 format
2.Response 主要构成
1.响应状态:200代表成功,301代表跳转,404找不到页面,502服务器错误。状态码
status code 200 ok 表示请求正常发送,服务器正常响应,网页的响应状态
2.响应头:如内容类型,内容长度,服务器信息,设置cookie等等。
reponse headers
3.响应体:最主要的部分,包含了请求资源的内容,如网页HTML,图片二进制数据等。
具体实例:
>>> import requests
>>> response = requests.get('http://www.baidu.com')
>>> response.text # 可以拿到网页源码(响应体)
开始对网页进行解析
response.headers 查看响应头
response status_code 拿到响应状态
response.content 获得响应体的二进制
第一次爬虫,兴奋,虽然是最简单的一个图片
import requestsresponse = requests.get( 'https://img4.duitang.com/uploads/item/201603/01/20160301162401_fc4Rv.jpeg')>>> with open(r'D:\\sylm','wb') as f: ... f.write(response.content) ... f.close()