分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

urllib2的基本使用

发布时间:2023-09-06 01:16责任编辑:熊小新关键词:url

urlopen

 ?1 import urllib2 ?2 ??3 # 向指定的url发送请求,并返回服务器响应的类文件对象 ?4 response = urllib2.urlopen("http://www.baidu.com/") ?5 ??6 # 类文件对象支持文件的操作方法,如read()方法返回为字符串 ??7 html = response.read() ?8 ??9 print htm

上面代码就是打开百度主页的“查看源代码”的内容,还是比较简单的。

Request

在上个例子里,urlopen()的参数就是一个url地址;

但是如果需要执行更复杂的操作,比如增加HTTP报头,必须创建一个 Request 实例来作为urlopen()的参数;而需要访问的url地址则作为 Request 实例的参数。

 ?1 # -*- coding:utf-8 -*- ?2 import urllib2 ?3 ??4 url = "http://www.baidu.com/" ?5 ??6 # url 作为Request()方法的一个参数,并构造一个Request对象 ?7 request = urllib2.Request(url) ?8 ??9 # Request对象作为urlopen()方法的参数,发给服务器响应 10 response = urllib2.urlopen(request) 11 ?12 html = response.read() 13 ?14 print html

与上面的运行时一样的

新建Request实例,除了必须要有 url 参数之外,还可以设置另外两个参数:

  1. data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。

  2. headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。

User-Agent

爬虫需要伪装自己,伪装成公认的浏览器

 ?1 # -*- coding:utf-8 -*- ?2 import urllib2 ?3 ??4 url = "http://www.baidu.com/" ?5 headers = {"User-Agent" : "User-Agent:Mozilla/5.0(compatible;MSIE9.0;Windows ???NT6.1;Trident/5.0)"} ?6 ??7 ??8 # url和headers一起 作为Request()方法的参数,并构造一个Request对象 ?9 request = urllib2.Request(url, headers=headers) 10 ?11 # Request对象作为urlopen()方法的参数,发给服务器响应 12 response = urllib2.urlopen(request) 13 ?14 html = response.read() 15 ?16 print html

添加更多的Header信息

特定的header

 ?1 # -*- coding:utf-8 -*- ?2 import urllib2 ?3 ??4 url = "http://www.baidu.com/" ?5 headers = {"User-Agent" : "User-Agent:Mozilla/5.0(compatible;MSIE9.0;Windows ???NT6.1;Trident/5.0)"} ?6 ??7 ??8 # url和headers一起 作为Request()方法的参数,并构造一个Request对象 ?9 request = urllib2.Request(url, headers=headers) 10 # 调用Request.add_header(),添加或者修改特定的header 11 request = add_header("Connectin", "keep-alive") 12 ?13 # Request对象作为urlopen()方法的参数,发给服务器响应 14 response = urllib2.urlopen(request) 15 ?16 html = response.read() 17 ?18 print html

随机添加/修改User-Agent

 1 import urllib2 2 import random 3 ?4 url = "http://www.itcast.cn" 5 ?6 ua_list = [ 7 ????"Mozilla/5.0 (Windows NT 6.1; ) Apple.... ", 8 ????"Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ", 9 ????"Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",10 ????"Mozilla/5.0 (Macintosh; Intel Mac OS... "11 ]12 13 user_agent = random.choice(ua_list)14 15 request = urllib2.Request(url)16 17 #也可以通过调用Request.add_header() 添加/修改一个特定的header18 request.add_header("User-Agent", user_agent)19 20 # 第一个字母大写,后面的全部小写21 request.get_header("User-agent")22 23 response = urllib2.urlopen(request)24 25 html = response.read()26 print html

urllib2的基本使用

原文地址:http://www.cnblogs.com/cuzz/p/7641476.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved