转自:https://www.cnblogs.com/goldd/p/5457229.html

1、最简单

import urllib.request

response = urllib.request.urlopen('http://python.org/')

html = response.read()

2、使用 Request

import urllib.request

req = urllib.request.Request('http://python.org/')

response = urllib.request.urlopen(req)

the_page = response.read()

3、发送数据

#! /usr/bin/env python3

import urllib.parse

import urllib.request

url = 'http://localhost/login.php'

user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'

values = {

'act' : 'login',

'login[email]' : 'yzhang@i9i8.com',

'login[password]' : '123456'

}

data = urllib.parse.urlencode(values)

req = urllib.request.Request(url, data)

req.add_header('Referer', 'http://www.python.org/')

response = urllib.request.urlopen(req)

the_page = response.read()

print(the_page.decode("utf8"))

4、发送数据和header

#! /usr/bin/env python3

import urllib.parse

import urllib.request

url = 'http://localhost/login.php'

user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'

values = {

'act' : 'login',

'login[email]' : 'yzhang@i9i8.com',

'login[password]' : '123456'

}

headers = { 'User-Agent' : user_agent }

data = urllib.parse.urlencode(values)

req = urllib.request.Request(url, data, headers)

response = urllib.request.urlopen(req)

the_page = response.read()

print(the_page.decode("utf8"))

5、http 错误

#! /usr/bin/env python3

import urllib.request

req = urllib.request.Request('http://www.111cn.net ')

try:

urllib.request.urlopen(req)

except urllib.error.HTTPError as e:

print(e.code)

print(e.read().decode("utf8"))

6、异常处理1

#! /usr/bin/env python3

from urllib.request import Request, urlopen

from urllib.error import URLError, HTTPError

req = Request("http://www.111cn.net /")

try:

response = urlopen(req)

except HTTPError as e:

print('The server couldn't fulfill the request.')

print('Error code: ', e.code)

except URLError as e:

print('We failed to reach a server.')

print('Reason: ', e.reason)

else:

print("good!")

print(response.read().decode("utf8"))

7、异常处理2

#! /usr/bin/env python3

from urllib.request import Request, urlopen

from urllib.error import  URLError

req = Request("http://www.111cn.net /")

try:

response = urlopen(req)

except URLError as e:

if hasattr(e, 'reason'):

print('We failed to reach a server.')

print('Reason: ', e.reason)

elif hasattr(e, 'code'):

print('The server couldn't fulfill the request.')

print('Error code: ', e.code)

else:

print("good!")

print(response.read().decode("utf8"))

8、HTTP 认证

#! /usr/bin/env python3

import urllib.request

# create a password manager

password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password.

# If we knew the realm, we could use it instead of None.

top_level_url = "https://www.111cn.net /"

password_mgr.add_password(None, top_level_url, 'rekfan', 'xxxxxx')

handler = urllib.request.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)

opener = urllib.request.build_opener(handler)

# use the opener to fetch a URL

a_url = "https://www.111cn.net /"

x = opener.open(a_url)

print(x.read())

# Install the opener.

# Now all calls to urllib.request.urlopen use our opener.

urllib.request.install_opener(opener)

a = urllib.request.urlopen(a_url).read().decode('utf8')

print(a)

9、使用代理

#! /usr/bin/env python3

import urllib.request

proxy_support = urllib.request.ProxyHandler({'sock5': 'localhost:1080'})

opener = urllib.request.build_opener(proxy_support)

urllib.request.install_opener(opener)

a = urllib.request.urlopen("http://www.111cn.net ").read().decode("utf8")

print(a)

10、超时

#! /usr/bin/env python3

import socket

import urllib.request

# timeout in seconds

timeout = 2

socket.setdefaulttimeout(timeout)

# this call to urllib.request.urlopen now uses the default timeout

# we have set in the socket module

req = urllib.request.Request('http://www.111cn.net /')

a = urllib.request.urlopen(req).read()

print(a)

python抓资源_python3 抓取网页资源的 N 种方法相关推荐

  1. 抓取网页数据的几种方法

    相信所有个人网站的站长都有抓取别人数据的经历吧,目前抓取别人网站数据的方式无非两种方式: 一.使用第三方工具,其中最著名的是火车头采集器,在此不做介绍. 二.自己写程序抓取,这种方式要求站长自己写程序 ...

  2. Python爬虫系列:判断目标网页编码的几种方法

    在爬取网页内容时,了解目标网站所用编码是非常重要的,本文介绍几种常用的方法,并使用几个网站进行简单测试. 代码运行结果: 从不同国家的几个网站测试结果来看,utf8使用的较多(对于纯英文网站,用什么方 ...

  3. python3实现抓取网页资源的 N 种方法(内附200GPython学习资料)

    这两天学习了python3实现抓取网页资源的方法,发现了很多种方法,所以,今天添加一点小笔记. 文章最后为各位小伙伴提供超级彩蛋!不要错过了! 1.最简单 import urllib.request ...

  4. python抓取网页内容到excel_Python实现抓取网页生成Excel文件的方法示例

    本文实例讲述了Python实现抓取网页生成Excel文件的方法.分享给大家供大家参考,具体如下: Python抓网页,主要用到了PyQuery,这个跟jQuery用法一样,超级给力 示例代码如下: # ...

  5. 转载自android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式)

    转载自http://blog.csdn.net/sac761/article/details/48379173 android 开发--抓取网页解析网页内容的若干方法(网络爬虫)(正则表达式) 标签: ...

  6. Python学习笔记:爬取网页图片

    Python学习笔记:爬取网页图片 上次我们利用requests与BeautifulSoup爬取了豆瓣<下町火箭>短评,这次我们来学习爬取网页图片. 比如想爬取下面这张网页的所有图片.网址 ...

  7. Python爬虫:Xpath爬取网页信息(附代码)

    Python爬虫:Xpath爬取网页信息(附代码) 上一次分享了使用Python简单爬取网页信息的方法.但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求.对于一般的数据需求,我们通常需要从一个 ...

  8. Python爬虫入门之爬虫解析提取数据的四种方法

    本文主要介绍了Python爬虫入门之爬虫解析提取数据的四种方法,通过具体的内容向大家展现,希望对大家Python爬虫的学习有所帮助. 基础爬虫的固定模式 笔者这里所谈的基础爬虫,指的是不需要处理像异步 ...

  9. JavaScript 实现网页截屏五种方法

    JavaScript 实现网页截屏五种方法 最近研究了下如何利用JavaScript实现网页截屏,包括在浏览器运行的JS,以及在后台运行的nodeJs的方法.主要看了以下几个: PhantomJS P ...

  10. Python炫技操作:花式导包的八种方法

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 五岳寻仙不辞远,一身好入名山游. ...

最新文章

  1. android5.1内核版本,Android-x86现已基于5.1.1 Lollipop:支持UEFI和64位内核
  2. CMAKE_CURRENT_BINARY_DIR
  3. ----icon moon追加新字体图标----
  4. Asp.Net前台调用后台变量
  5. JAVA设计模式-委派模式(Delegate)
  6. layui fixbar 返回顶部_卖在顶部(四)
  7. PDF阅读器哪个好用?看完这篇文章就可以不用再问了
  8. 数据结构实验1.2:高精度计算PI值
  9. 吗 极域软件可以装win10_关于win10企业版在极域电子教室软件 v4.0 2015 豪华版的全屏控制下如何取得自由...
  10. 15 种最受欢迎的数据可视化流程图及模板
  11. IGS Viewer / IGS 文件查看器
  12. 手机word如何转换html,如何把Word转换为网页html格式
  13. Dynamixel数字伺服舵机XM430-W350-R
  14. coreldraw梯形校正_CDR绘图教程,教你CorelDRAW如何绘制等腰梯形
  15. 关于苹果手机页面中字体大小显示不正确的问题
  16. 【数据库04】中级开发需要掌握哪些SQL进阶玩法
  17. 第一篇:瑞吉外卖项目概述
  18. EPICS -- asynRecord记录使用示例
  19. 如何将excel表中的多行数据合并到一行
  20. 汉语计算机系统,汉语编程单片机的计算机系统

热门文章

  1. 关于IDEA WEB项目的创建与无法继承HttpServlet问题
  2. linux常用指令(持续更新)
  3. pico park无法连接至远程服务器,pico park怎么联机玩?pico park怎么邀请朋友一起玩?[多图]...
  4. catia钣金根据线段折弯_钣金折弯如何确定折弯的顺序
  5. php判断是否为手机设备
  6. 2.4. myisamchk — MyISAM Table-Maintenance Utility
  7. 系统监控Zabbix部署文档
  8. php之isset() 、empty()、is_null()的区别
  9. I.MX6 隐藏电池图标
  10. 用AJAX技术聚合RSS