爬虫学习(三)——get请求参数解析
get请求:
用户输入搜索的内容,发送请求,将请求的内容保存起来。
get请求的本质是在地址栏中输入参数进行的一种请求方式。
解析参数使用urllib.parse
import urllib.parse
# 在百度搜索“中国”关键字,得到的得到的url如下:
string= "https://www.baidu.com/s?ie=utf-8&word=%E4%B8%AD%E5%9B%BD&tn=98537121_hao_pg"
#unquote()反应用,解析参数,将二进制转成我们能看懂的中文形式
string = urllib.parse.unquote(string)
print(string)
# 显示结果:
https://www.baidu.com/s?ie=utf-8&word=中国&tn=98537121_hao_pg
第一种方式
country =input("请输入要检索的信息")
# 输入内容:王家兴
# 引用,即解析参数,将中文转换成为二进制形式
# 对指定的参数径解析
string = urllib.parse.quote(country)
# 将参数写成字典的格式
data = {
    "ie":"utf-8",
    "word":"%s"%string
}
# 拼接路由
lt = []
for ie,word in data.items():
lt.append(ie+"="+word)
# join()函数的作用是将将“&”作为分隔符对列表lt中的字符串进行拼接
var ="&".join(lt)
string= "https://www.baidu.com/s?%s"%var
print(string)
# 显示结果:
# https://www.baidu.com/s?ie=utf-8&word=%E7%8E%8B%E5%AE%B6%E5%85%B4
第二种方式
# 将参数写成字典的格式
data = {
    "ie":"utf-8",
    "word":"澳大利亚"
}
# urlencode()函数是专门对url进行操作的函数,并且把参数编码成为url类型的数据
urldata = urllib.parse.urlencode(data)
print(urldata)
# 显示结果:
# ie=utf-8&word=%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A
# 对url进行拼接
urlall= "https://www.baidu.com/s?%s"%urldata
# 显示结果:
print(urlall)
# https://www.baidu.com/s?ie=utf-8&word=%E6%BE%B3%E5%A4%A7%E5%88%A9%E4%BA%9A
ajax的GET请求
请求头信息(浏览器请求头信息)
- Request URL:https://movie.douban.com/top250?start=25&filter=
 - Request Method:GET
 - Status Code:200 OK
 - Remote Address:154.8.131.165:443
 - Referrer Policy:unsafe-url
 
爬虫代码如下:
import urllib.request
import urllib.parse
url = "https://movie.douban.com/top250?"
start = int(input("输入要查看到电影的页码:"))
data = {
"start": (start - 1) * 25,
"filter": "",
}
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"}
data = urllib.parse.urlencode(data)
url+=data
print(url)
request =urllib.request.Request(url,headers = headers)
response = urllib.request.urlopen(request)
print(response.read().decode("utf8"))
爬虫学习(三)——get请求参数解析的更多相关文章
- SpringBoot系列教程web篇之Get请求参数解析姿势汇总
		
一般在开发web应用的时候,如果提供http接口,最常见的http请求方式为GET/POST,我们知道这两种请求方式的一个显著区别是GET请求的参数在url中,而post请求可以不在url中:那么一个 ...
 - SpringBoot系列教程web篇之Post请求参数解析姿势汇总
		
作为一个常年提供各种Http接口的后端而言,如何获取请求参数可以说是一项基本技能了,本篇为<190824-SpringBoot系列教程web篇之Get请求参数解析姿势汇总>之后的第二篇,对 ...
 - SpringMVC请求参数解析
		
请求参数解析 客户端请求在handlerMapping中找到对应handler后,将会继续执行DispatchServlet的doPatch()方法. 首先是找到handler对应的适配器. Hand ...
 - Python3爬虫(三)请求库的使用之urllib
		
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.urllib库: 1. 是Python内置的HTTP请求库 2. 在Python2中,由urllib和urll ...
 - http.request请求及在node中post请求参数解析
		
Post请求 var http=require('http'); var qs=require('querystring'); var post_data={a:123,time:new Date() ...
 - springmvc 请求参数解析细节
		
springmvc 的请求流程,相信大家已经很熟悉了,不熟悉的同学可以参考下资料! 有了整体流程的概念,是否对其中的实现细节就很清楚呢?我觉得不一定,比如:单是参数解析这块,就是个大学问呢? 首先,我 ...
 - Java爬虫系列三:使用Jsoup解析HTML
		
在上一篇随笔<Java爬虫系列二:使用HttpClient抓取页面HTML>中介绍了怎么使用HttpClient进行爬虫的第一步--抓取页面html,今天接着来看下爬虫的第二步--解析抓取 ...
 - Python爬虫学习三------requests+BeautifulSoup爬取简单网页
		
第一次第一次用MarkDown来写博客,先试试效果吧! 昨天2018俄罗斯世界杯拉开了大幕,作为一个伪球迷,当然也得为世界杯做出一点贡献啦. 于是今天就编写了一个爬虫程序将腾讯新闻下世界杯专题的相关新 ...
 - python爬虫学习(三):使用re库爬取"淘宝商品",并把结果写进txt文件
		
第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字“python”,然后搜索,显示如下搜索结果 从url连接中可以得到搜索商品的关键字是 ...
 
随机推荐
- 华东交通大学2017年ACM“双基”程序设计竞赛 1005
			
Problem Description 假设你有一个矩阵,有这样的运算A^(n+1) = A^(n)*A (*代表矩阵乘法)现在已知一个n*n矩阵A,S = A+A^2+A^3+...+A^k,输出S ...
 - LeetCode 232 Implement Queue using Stacks 两个栈实现队列
			
class MyQueue { public: /** Initialize your data structure here. */ MyQueue() { } /** Push element x ...
 - python3 no module named PIL
			
sudo apt-get install python3-imaging
 - TypeScript 装饰器
			
装饰器(Decorators)可用来装饰类,属性,及方法,甚至是函数的参数,以改变和控制这些对象的表现,获得一些功能. 装饰器以 @expression 形式呈现在被装饰对象的前面或者上方,其中 ex ...
 - matlab 打不开excel文件
			
方法论 excel的后缀为.xls, matlab是无法识别的, 需要将其另存为.xlsx文件格式 打开excel, 点击save as, 选中保存的文件格式是.xlsx即可
 - launchctl
			
Launchctl 系统启动时, 系统会以root用户的身份扫描/System/Library/LaunchDaemons和/Library/LaunchDaemons目录, 如果文件中有Disabl ...
 - Docker | 第一章:Docker简介
			
前言 作为本系列的起始章节,本章节主要是对Docker的相关概念进行简单阐述下.自此也是查阅了相关资料,奈何也都是英文版居多,看的是有点头大的.现在悔不当初不好好学习英文了.o(︶︿︶)o 唉 Doc ...
 - SpringBoot | 第十一章:Redis的集成和简单使用
			
前言 上几节讲了利用Mybatis-Plus这个第三方的ORM框架进行数据库访问,在实际工作中,在存储一些非结构化或者缓存一些临时数据及热点数据时,一般上都会用上mongodb和redis进行这方面的 ...
 - 记录下laravel 5.2的auth/logout路由工作不正常的问题
 - 华为云kafka  POC 踩坑记录
			
2019/03/08 18:29 最近在进行华为云相关POC验证,个人主要负责华为云DMS kafka相关.大致数据流程是,从DIS取出数据,进行解析处理,然后放入kafka,再从kafka中取出数据 ...