爬虫学习(三)——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连接中可以得到搜索商品的关键字是 ...
随机推荐
- abp架构中加载公共css样式表和公共js的文件目录位置
src\shared\helpers\LocalizedResourcesHelper.ts
- Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
以下异常说明mysql已经启动. 应先关掉先前启动的mysql.再执行初始化schema操作. $service mysql stop; # $HIVE_HOME/bin/schematool -db ...
- 错误:正在解析文件 '/var/lib/dpkg/updates/0004'
sudo rm /var/lib/dpkg/updates/* sudo apt-get update
- windows下显示隐藏的文件
文件--文件夹选项---查看---高级设置----隐藏文件和文件夹----显示隐藏的文件.文件夹和驱动器
- Problem Statement
题目链接:https://vjudge.net/contest/239445#problem/E E - Problem Statement You are given nn strings ...
- Spark编程模型(中)
创建RDD 方式一:从集合创建RDD makeRDD Parallelize 注意:makeRDD可以指定每个分区perferredLocations参数parallelize则没有. 方式二:读取外 ...
- Maven的学习资料收集--(三)使用Maven构建Web项目
新建Maven项目 File - New - Other 选择Maven Project 单击Next 保持默认即可单击Next 选择Archetype为 web app单击Next 输入一些必要信息 ...
- SQL中改变列的数据类型
一.该列非主键.无default约束 直接更新: alter table 表名 alter column 列名 数据类型 二.该列为主键列.无default约束 (1)删除主键 alter table ...
- PHPGGC学习----理论
本文首发于先知:https://xz.aliyun.com/t/5450 PHPGGC 是一款能够自动生成主流框架的序列化测试payload的工具,类似 Java 中的 ysoserial, 当前支持 ...
- A promise tomorrow is worth a lot less than trying today.
A promise tomorrow is worth a lot less than trying today.明日的承诺远不及今日的行动.