Python 3.x 标准库 urllib提供了 rullib.request、urllib.response、urllib.parse 和 urllib.error 4个模块,很好地支持了网页内容读取功能。

  下面的代码演示了如何读取并显示指定网页的内容。

1 import urllib.request
2
3 fp = urllib.request.urlopen(r'http://www.baidu.com')
4
5 print(fp.read().decode())     #读取了返回HTML
6
7 fp.close()

  下面的代码演示了如何使用GET方法读取并显示指定URL的内容。

1 import urllib.request
2 import urllib.parse
3
4 params = urllib.parse.urlencode({'spam':1,'eggs':2,'bacon':0})
5 url = r'http://www.baidu.com%s'%params
6 with urllib.request.urlopen(url) as f:
7     print(f.read().decode('utf-8'))

  下面的代码演示了如何使用POST方法提交参数并读取指定页面内容。

1 import urllib.request
2 import urllib.parse
3
4 data = urllib.parse.urlencode({'spam':1,'eggs':2,'bacon':0})
5 data = data.encode('ascii')
6 with urllib.request.urlopen(r'http://www.baidu.com',data) as f:
7     print(f.read().decode('utf-8'))

  下面的代码演示了如何使用HTTP代理访问指定网页。

1 import urllib.request
2
3
4 proxies = {'heet':'http://proxy.example.com:8080/'}
5 opener = urllib.request.FancyURLopener(proxies)
6 with opener.open('http://www.python.ory') as f:
7     f.read().decode('utf-8')

  在IDLE或者Python程序中使用下面的代码调用浏览器打开指定网页:

1 import webbrowser
2
3 webbrowser.open('www.baidu.com')

  最后,标准库urllib.parse import urlparse 提供了域名解析的功能,支持RUL的拆分与合并以及相对地址到绝对地址的转换。

 1 from urllib.parse import urlparse
 2
 3 o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
 4 print(o.port)        #80
 5 print(o.hostname)    #www.cwi.nl
 6
 7 print(o)   #ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html', params='', query='', fragment='')
 8
 9 print(urlparse('www.cwi.nl:80/%7Eguido/Python.html'))  #ParseResult(scheme='www.cwi.nl', netloc='', path='80/%7Eguido/Python.html', params='', query='', fragment='')
10
11
12 from urllib.parse import urljoin
13 print(urljoin('http://www.cwi.nl:80/%7Eguido/Python.html','FAQ.html'))   #http://www.cwi.nl:80/%7Eguido/FAQ.html
14 print(urljoin('http://www.cwi.nl:80/%7Eguido/Python.html','//www.python.org/%7Eguido'))   #http://www.python.org/%7Eguido
15
16 from urllib.parse import urlsplit
17 url = r'https://docs.python.org/3/library/urllib.parse.html'
18 r1=urlsplit(url)
19 print(r1)        #SplitResult(scheme='https', netloc='docs.python.org', path='/3/library/urllib.parse.html', query='', fragment='')
20 print(r1.geturl()) #https://docs.python.org/3/library/urllib.parse.html

转载于:https://www.cnblogs.com/avention/p/8984481.html

9.3 域名解析与网页爬虫相关推荐

  1. 【谷歌推网页爬虫新标准,开源robots.txt解析器】

    https://www.toutiao.com/a1638031116246019 [谷歌推网页爬虫新标准,开源robots.txt解析器] 对于接触过网络爬虫的人来说 robots.txt 绝不陌生 ...

  2. python网页爬虫-python网页爬虫浅析

    Python网页爬虫简介: 有时候我们需要把一个网页的图片copy 下来.通常手工的方式是鼠标右键 save picture as ... python 网页爬虫可以一次性把所有图片copy 下来. ...

  3. python网页爬虫-Python网页爬虫

    曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选 ...

  4. Python十分适合用来开发网页爬虫

    Python十分适合用来开发网页爬虫,理由如下: 1.抓取网页自身的接口 比较与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简练:比较其他动态脚本语言,如perl,sh ...

  5. 实战|Python轻松实现动态网页爬虫(附详细源码)

    用浅显易懂的语言分享爬虫.数据分析及可视化等干货,希望人人都能学到新知识. 项目背景 事情是这样的,前几天我公众号写了篇爬虫入门的实战文章,叫做<实战|手把手教你用Python爬虫(附详细源码) ...

  6. Python带你轻松进行网页爬虫

    前不久DotNet开源大本营通过为.NET程序员演示如何在.NET下使用C#+HtmlAgilityPack+XPath进行网页数据的抓取,从而为我们展示了HtmlAgilitypack利器的优点和使 ...

  7. 排名前20的网页爬虫工具,超多干货

    网络爬虫在许多领域都有广泛的应用,它的目标是从网站获取新的数据,并加以存储以方便访问.而网络爬虫工具越来越为人们所熟知,因为它能简化并自动化整个爬虫过程,使每个人都可以轻松访问网络数据资源. 1. O ...

  8. methanol 模块化的可定制的网页爬虫软件,主要的优点是速度快。

    methanol模块化的可定制的网页爬虫软件,主要的优点是速度快. 下载:http://sourceforge.net/projects/methabot/?source=typ_redirect R ...

  9. python实现监控电脑打开网页_Python轻松实现动态网页爬虫(附详细源码)

    AJAX动态加载网页 一 什么是动态网页 J哥一向注重理论与实践相结合,知其然也要知其所以然,才能以不变应万变. 所谓的动态网页,是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成 ...

最新文章

  1. Luogu P4479 [BJWC2018]第k大斜率
  2. 《C Primer Plus(第6版)中文版》一第1章 初识C语言1.1 C语言的起源
  3. Servlet的初始化参数
  4. 为什么watch机制不是银弹?
  5. php 留言板分页显示,php有分页的留言板,留言成功后怎么返回当前页?
  6. 单利计算与复利计算程序
  7. 【裸眼3D】 图形图像空洞填充
  8. 多人协同在线编辑文档软件使用体验
  9. MXNet对含隐藏状态的循环神经网络(RNN)的实现
  10. 浏览器是怎样工作的?
  11. Python量化交易平台开发教程系列7-顶层GUI界面开发(1)
  12. 由于找不到msvcp140.dll,无法继续执行代码。重新安装可能会解决此问题
  13. 【转官方】Android ADB调试命令、支持的命令、ADB文档
  14. PHP构造函数construct 析构函数destruct
  15. postgresql 安装使用修改密码psql登录
  16. 无人机学习之路——学习路线
  17. 杭电oj(Java版)——1713 相遇周期
  18. 使用Python快速启动文件服务器
  19. 总额超21亿!乐视网又双叒叕增加了被执行人信息
  20. 启动3dmax 9,出现脚本错误警告的解决方法

热门文章

  1. python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...
  2. python turtle画气球-micro:bit + LoRa 实现气球追踪
  3. python爬虫软件-8个最高效的Python爬虫框架,你用过几个?
  4. python 爬虫实例 电影-Python爬虫教程-17-ajax爬取实例(豆瓣电影)
  5. python基础知识面试题-python的一些基本概念知识和面试题
  6. python教程哪个版本好-tensorflow用python哪个版本更好?
  7. python语言入门书籍推荐-入门python有什么好的书籍推荐?
  8. python cookbook 中文版 第 3 版-《Python Cookbook》第三版中文版
  9. python解一元二次方程步骤-Python实现求解一元二次方程的方法示例
  10. python大数据分析实例-Python实现的大数据分析操作系统日志功能示例