爬虫【3】URL地址编码

爬虫回顾:

  • 爬虫【1】打开网站,获取信息
  • 爬虫【2】重构UserAgent

为什么要进行编码?

在百度中搜索:b站你可以看到上方的url是这样的

可以看到bai.com/s?之后还有很多以&相连的东西,大部分是我们用不到打,但是可以看到一个wd=b站
把其他的东西删去只留下https://www.baidu.com/s?wd=b站还是可以正常访问的。但是如果你去复制的话得到的是https://www.baidu.com/s?wd=b%E7%AB%99可以知道url是不支持中文的会对其进行编码,你在网页可以看到只是因为浏览器给你解码了。

当我们需要获取百度搜索的b站的内容时就需要对我们的url也进行编码了

URL地址编码模块

模块名及导入

  • 模块
# 模块名
urllib.parse# 导入
import urllib.parse
from urllib import parse
  • 作用
    给URL地址中查询参数进行编码
编码前:https://www.baidu.com/s?wd=美女
编码后:https://www.baidu.com/s?wd=%E7%BE%8E%E5%A5%B3

常用方法

urllib.parse.urlencode({dict})

  • URL地址中一个查询参数
# 查询参数:{'wd' : '美女'}
# urlencode编码后:'wd=%e7%be%8e%e5%a5%b3'# 示例代码
query_string = {'wd' : '美女'}
result = urllib.parse.urlencode(query_string)
# result: 'wd=%e7%be%8e%e5%a5%b3'
  • URL地址中多个查询参数
from urllib import parse
params = {'wd' : '美女','pn' : '50'
}
params = parse.urlencode(query_string_dict)
url = 'http://www.baidu.com/s?{}'.format(params)
print(url)
  • 拼接URL地址的3种方式
# 1、字符串相加baseurl = 'http://www.baidu.com/s?'params = 'wd=%E7XXXX&pn=20'url = baseurl + params# 2、字符串格式化(占位符)params = 'wd=%E7XXXX&pn=20'url = 'http://www.baidu.com/s?%s'% params# 3、format()方法url = 'http://www.baidu.com/s?{}'params = 'wd=#E7XXXX&pn=20'url = url.format(params)
  • 练习
    在360中输入要搜索的内容,把响应内容保存到本地文件
    这年头,百度搜索和bing搜索这种简单的小爬虫都用不了了,无奈欺负欺负360搜索吧
from urllib import parse
from urllib import requestdef get_url(word):baseurl = 'https://www.so.com/s?'parses = {'q': word}parses = parse.urlencode(parses)url = baseurl + parsesreturn urldef write_html(url, word):print(url)headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'}req = request.Request(url, headers=headers)res = request.urlopen(req)html = res.read().decode('utf-8')filepath = word + '.html'with open(filepath, 'w',encoding='utf-8') as f:f.write(html)if __name__ == '__main__':word = input('请输入你想搜索的内容: ')url = get_url(word)write_html(url,word)

爬虫【3】URL地址编码相关推荐

  1. i春秋url地址编码问题

    i春秋学院是国内比较知名的安全培训平台,前段时间看了下网站,顺便手工简单测试常见的XSS,发现网站搜索功能比较有意思. 其实是对用户输入的内容HTML编码和URL编码的处理方式在这里不合理,提交到乌云 ...

  2. java url地址编码转换_java url编码转换

    [转载于:  因为在做链接来源统计的时候需要把 http://www.baidu.com/baiduword=%D6%D0%B9%FA%B4%F3%B0%D9%BF%C6%D4%DA%CF%DF%C8 ...

  3. java http url 编码_Java中的HTTP URL地址编码

    java.net.URI类可以帮助;在URL的文档中找到 Note, the URI class does perform escaping of its component fields in ce ...

  4. python网络爬虫实列——站长之家url解码编码

    爬虫实列--站长之家url解码编码 利用urllib可以做一些网页在线翻译,在线解码之类的实列. 1. 这是网站 2.找到所需要的请求头文件 找到请求网址,明确请求方法(详情请百度get请求与post ...

  5. 把url地址复制到粘贴板上_写个简单的python爬虫爬取堆糖上漂亮的小姐姐

    简单的爬虫入门实战 最近刚学了python的爬虫,刚好可以用来爬取漂亮的图片作为壁纸,网上美图网站有很多,比如:花瓣,堆糖.它们请求图片数据的方式差不多类似,都是通过用户不断下滑加载新的图片,这种请求 ...

  6. Urlencode编码对HTTP的URL地址的作用的探究(20210519更新,最终结论得出,XSS相关)

    本文要点 在游览器地址栏中输入包含特定字符的URL地址时,部分字符,例如大括号"{}"会被URLencode,且不同游览器的行为并不一致. 本文根据相关文档,分析了URI的结构与格 ...

  7. php b64encode,[转]PHP base64_encode 在URL地址参数编码上使用

    因为我使用公钥,使用php的 openssl 加密之后的资料 base64_encode()字符串,然后放入请求 url 中当作参数,urlencode(base64_encode()),然后用 ur ...

  8. 洗礼灵魂,修炼python(56)--爬虫篇—知识补充—编码之url编码

    其实在最前面的某一篇博文里,是绝对提过编码的,有ASCII,有UTF-8,有GB2312等等,这些我绝对说过的. url编码 首先,Http协议中参数的传输是"key=value" ...

  9. python 乱码问题(编码url地址,python中open中文图片)

    首先是解析url地址 url地址形如下面的格式,%E4%B8...... 通过urllib.unquote()解析 我这串乱码的意思是:%E4%B8%AD%E6%96%87 = 中文 i_path = ...

最新文章

  1. Android系统源码导入Android studio
  2. 常用git命令思维图
  3. 650 storm 铃木v_铃木公升级V缸拉力V-strom 1050国内公布!高配版预售价14.98万
  4. SQLServer 常见高CPU利用率原因
  5. LINQ to SQL: DataContext.SubmitChanges() 失效问题
  6. 【Linux】一步一步学Linux——test命令(252)
  7. 关于Visual Studio 当前不会命中断点.还没有为该文档加载任何符号的解决方法
  8. C++ 复制字符串/字符数组
  9. 爬虫工具:虚拟机Selenium和PhantomJS,ChromeDriver 镜像安装教程
  10. 【OpenCV】OpenCV实战从入门到精通之 -- 输入输出XML和YAML文件详解
  11. bat脚本交互输入_windows 10 如何设定计划任务自动执行 python 脚本?
  12. webpack 样式表抽离成专门的单独文件并且设置版本号
  13. v-ray 5.0 渲染器参数说明
  14. 鸿蒙系统图标大小怎么调节,华为手机桌面图标大小怎么调?用华为手机的朋友这些技巧需要了解...
  15. 趣味编程入门 Scratch 开发跳一跳小游戏-邵立志-专题视频课程
  16. UMTS移动通信技术
  17. 高等数学:第三章 微分中值定理与导数的应用(3)泰勒公式
  18. 十年一觉程设梦[完整版]
  19. c语言json使用,cJSON使用(二)
  20. single crop和muti-crop

热门文章

  1. 一个人最好的生活状态
  2. 虚拟机服务器 资料安全,绝密:三步教你轻松窃取VMware虚拟机及其数据漏洞预警 -电脑资料...
  3. 影视剪辑,自学剪辑,视频剪辑7天学习计划
  4. Lua学习笔记(一)
  5. 图像低频、高频信息的理解
  6. 知识付费直播使用https方法 教程
  7. rxtx java 错误
  8. 怎么在Arcgis中提取多个坐标点的dem值(高程)
  9. Firefox 浏览器能,IE为什么不能?
  10. 快手视频艾特实操教学分享,什么是艾特脚本,评论区艾特引流脚本讲解!