一周爬虫集训任务一:学习get与post请求+正则表达式

一周爬虫集训任务一:学习get与post请求+正则表达式

    • 1 任务
    • 2 get与post请求
      • 2.1 get与post的区别
      • 2.2 requests库和urllib库的区别
      • 2.3 断网后发出申请的结果
      • 2.4 申请返回的状态码
      • 2.5 什么是请求头,如何添加请求头
    • 3 正则表达式
      • 3.1 什么是正则表达式
      • 3.2 爬虫实战
    • 4 参考

1 任务

【任务一】(3天)
1.1 学习get与post请求
学习get与post请求,尝试使用requests或者是urllib用get方法向https://www.baidu.com/发出一个请求,并将其返回结果输出。
如果是断开了网络,再发出申请,结果又是什么。了解申请返回的状态码。
了解什么是请求头,如何添加请求头。
1.2 正则表达式
学习什么是正则表达式并尝试一些正则表达式并进行匹配。
然后结合requests、re两者的内容爬取https://movie.douban.com/top250 里的内容
要求抓取名次、影片名称、年份、导演等字段。
参考资料: https://desmonday.github.io/2019/03/02/python爬虫学习-day2正则表达式/

2 get与post请求

2.1 get与post的区别

  1. HTTP和HTTPS分别是什么?
    HTTP协议(超文本传输协议): 是一种发布和接收HTML页面的方法,其设计目的是保证客户机与服务器之间的通信,HTTP 的工作方式是客户机与服务器之间的请求-应答协议。

    HTTPS: 简单讲就是HTTP的安全版,在HTTP下加入SSL层。

    举例:客户端(浏览器)向服务器提交** HTTP 请求**;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

  2. 两种 HTTP 请求方法:get 和 post
    在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:getpost

    本质: get和post本质上都是TCP链接,并无差别,只是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

    get - 用于从服务器上获取数据;get产生一个TCP数据包;对于get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

    post - 用于向服务器传送数据;post产生两个TCP数据包;对于post,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据)。

2.2 requests库和urllib库的区别

在使用python爬虫时,需要模拟发起网络请求,主要用到的库有requests库和python内置的urllib库,一般建议使用requests,它是对urllib的再次封装,它们使用的主要区别
requests可以直接构建常用的get和post请求并发起,urllib一般要先构建get或者post请求,然后再发起请求。

然后分别用requests库和urllib库向百度发送一个请求,并将其返回结果输出。

  1. requests发送请求
## requests发送请求
import requests
url = "https://www.baidu.com"
##发送get请求
r = requests.get(url)
##改变编码方式
r.encoding = 'utf-8'
##获取响应内容
print(r.text)

结果如下:

<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> 

你可能感兴趣的:(爬虫)