山东大学软件工程应用与实践——ECommerceCrawlers代码分析(一)

2021SC@SDUSC


目录

一、摘要

二、HTTP协议

1.简介

2.HTTP协议的GET请求与POST请求

三、Requests库的简介与安装

1.简介

2.安装

四、Requests的相关知识

1.requests主要方法概览

2.Headers

3.响应请求

五、request的实践

爬取豆瓣电影分类排行榜(剧情)

代码注解:

爬取结果:

六、总结 


一、摘要

本篇博客是项目代码分析的第一篇,由于整个项目都是基于python的爬虫项目,所以我需要先学习python爬虫的相关技术,掌握这方面的知识,然后再分析项目代码。

本篇主要介绍的是我学习Python的requests库的过程。

二、HTTP协议

1.简介

HTTP,超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法,HTTP是一种基于"请求与响应"模式的、无状态的应用层协议。HTTP协议采用URL作为定位网络资源的的标识符。

2.HTTP协议的GET请求与POST请求

GET:从指定的资源请求数据。

POST:向指定的资源提交要被处理的数据。

三、Requests库的简介与安装

1.简介

Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。

2.安装

pip install requests

四、Requests的相关知识

1.requests主要方法概览

 requests的get()方法:

resp = requests.get(url)

resp是一个response对象,包含服务器资源和爬虫返回的内容。

.get(url)是一个request对象,构造一个向服务器请求资源的Request。

requests的post()方法:

resp = requests.post('http://httpbin.org/post',data={'key':'value'})

2.Headers

 HTTP Headers是HTTP请求和相应的核心,它承载了关于客户端浏览器,请求页面,服务器等相关的信息。

某网页的headers如图:

 headers有很多属性,如host,referer,User-Agent等,爬虫也可以自定义headers用于一些类似于处理简单的反爬操作,即自定义User-Agent处理反爬。

3.响应请求

通过Requests发起请求获取到的,是一个requests.models.Response对象。通过这个对象可以很方便的获取响应的内容。

resp = requests.get(url)

resp.text:HTTP响应的字符串形式,即url对应的页面内容

resp.encoding:从HTTP header中猜测的响应内容的编码方式

resp.content:HTTP响应内容的二进制形式

resp.json:若数据是JSON格式的则直接获取转换成字典格式的数据

resp.status_code:获得响应的状态码(如404,200等)

五、request的实践

爬取豆瓣电影分类排行榜(剧情)

import requests
url="https://movie.douban.com/j/chart/top_list"
param={
   "type": "11",
   "interval_id": "100:90",
   "action": "",
   "start": 0,
   "limit": 20
}
headers={
   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400"
}
resp = requests.get(url,params=param,headers=headers)
print(resp.json())
resp.close()

代码注解:

param:传递URL参数,即构造一个字典,并在请求时将其传递给params参数

headers:自定义headers,构造一个字典并传给headers参数,这里定义了User-Agent是用来处理反爬,即让服务器觉得是人在浏览器上浏览而不是自动化程序访问

resp.json():将响应结果转换成字典格式数据

爬取结果:

六、总结 

通过对requests库的初步了解,也算是爬虫入门的开始,知道了爬虫的基本原理和简单方法,了解了requests库的相关知识与应用,通过自己动手写第一个简单的爬虫程序,感受到爬虫的魅力与乐趣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值