Python爬虫之GET和POST的区别

  介绍

今天就跟大家聊聊有Python爬关虫之GET和POST的区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>爬虫——得到请求和帖子请求

urllib.parse.urlencode()和urllib.parse.unquote ()

编码工作使用urllib.parse的urlencode()函数,帮我们将键:值这样的键值对转换成“关键=value"这样的字符串,解码工作可以使用urllib的结束()函数。

#,python3.5控制台中测试结果   在祝辞祝辞import  urllib   在祝辞祝辞,word =, {“wd":“爬虫“}   #,通过urllib.parse.urlencode()方法,将字典键值对按URL编码转换,从而能被结婚服务器接受。   在祝辞祝辞,urllib.parse.urlencode(单词)   & # 39;wd ac % E8 %=% E7 % 88% 99% ab # 39;   #,通过urllib.parse.unquote()方法,把URL编码字符串,转换回原先的字符串。   在祝辞祝辞,urllib.parse.unquote(单词)   & # 39;wd=爬虫& # 39;

一般HTTP请求提交数据,需要编码成URL编码格式,然后做为URL的一部分,或者作为参数传到请求对象中。

<强>得到方式

得到请求一般用于我们向服务器获取数据,比如说,我们用百度搜索爬虫:https://www.baidu.com/s?wd=爬虫(https://www.baidu.com/s?wd=%E7%88%AC%E8%99%AB)

我们可以看到在请求部分里,http://www.baidu.com/s?之后出现一个长长的字符串,其中就包含我们要查询的关键词“爬虫”,于是我们可以尝试用默认的得到方式来发送请求。

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   ,   #,导入库   import  urllib.request   import  urllib   ,   时间=url “http://www.baidu.com/s?"   word =, {“wd":“爬虫“}   #,转换成url编码格式   时间=word  urllib.parse.urlencode(单词)   #,拼接成完整的url   +=full_url  url 词   #,chrome 的,用户代理,包含在,标题里   header =,{& # 39;用户代理# 39;:& # 39;Mozilla/5.0, (Windows  NT  6.1;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/39.0.2171.71  Safari/537.36 & # 39;}   #,url 连同,头,一起构造请求请求,这个请求将附带,chrome 浏览器的用户代理   时间=request  urllib.request.Request (full_url, headers =,头)   #,向服务器发送这个请求   时间=response  urllib.request.urlopen(请求)   ,   时间=html  response.read ()   fo =,开放(“baidu.html",,“wb")   fo.write (html)   fo.close ()

<强>批量爬取贴吧页面数据

首先我们创建一个python文件:tiebaSpider.py,我们要完成的功能,是输入一个百度贴吧的地址,比如:百度贴吧哈哈吧

第一页:http://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=0

第二页:http://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=50

第三页:http://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=100

……

爬取以上页面的内容

# !/usr/bin/python3   #,- *安康;编码:utf-8  - *   ,   “““   功能:批量爬取贴吧页面数据   目标地址:百度贴吧哈哈吧   分析:   ,,,第一页:https://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=0   ,,,第二页:http://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=50   ,,,第三页:http://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=100   ,,,……   规律:   ,,,贴吧中每个页面URL不同之处,就是最后的pn值,其余的都是一样的。其pn =, (page 安康;1),* 50   ,,,url =,“https://tieba.baidu.com/f?kw=lol& ie=utf-8& pn=?   ,,,pn =, (page 安康;1),* 50   ,,,full_url =, url  +, str (pn)   “““   ,   #,导入库   import  urllib   import  urllib.request   ,   #,根据url地址,获取服务器响应文件   def  loadPage (url):   ,,,,,,   ,,,功能:根据url地址,获取服务器响应文件   ,,,:param  url: url,地址   ,,,::返回,获取的服务器响应文件信息   ,,,,,,   ,,,#,chrome 的User-Agent 头   ,,,header =,{& # 39;用户代理# 39;:& # 39;Mozilla/5.0, (Windows  NT  6.1;, WOW64), AppleWebKit/537.36, (KHTML, like 壁虎),Chrome/39.0.2171.71  Safari/537.36 & # 39;}   ,,,#,url 连同,头,一起构造请求请求,这个请求将附带,chrome 浏览器的用户代理   ,,,request =, urllib.request.Request (url, headers =,头)   ,,,#,向服务器发送这个请求   ,,,reponse =, urllib.request.urlopen(请求)   ,,,#,获取响应文件中的全部内容   ,,,html =, reponse.read ()   ,   ,,,return  html   ,   #,存储文件   def  writeFile (html、, file_name):   ,,,,,,   ,,,功能:存服务器响应文件到本地磁盘文件里   ,,,:param  html:,服务器响应文件内容   ,,,:param  file_name:,本地磁盘文件名   ,,,:返回:没有   ,,,,,,   ,,,with 开放(file_name,“wb"), as  f:   ,,,,,,,f.write (html)   ,   ,   #,贴吧爬虫函数   def  tiebaSpider (url, begin_page,, end_page):   ,,,,,,   ,,,功能:处理从begin_page到end_page页的url面   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Python爬虫之GET和POST的区别