首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python中的Urllib2 :为什么它不返回网页格式而不是实际数据?

在Python中,urllib2是一个用于发送HTTP请求的库。它提供了一种简单的方式来与Web服务器进行交互,并获取服务器返回的数据。然而,urllib2在返回网页格式而不是实际数据的情况下,可能是由以下几个原因引起的:

  1. 服务器返回的数据格式问题:urllib2发送HTTP请求后,服务器会返回响应数据。如果服务器返回的数据格式不是网页格式,而是其他格式(例如JSON、XML等),那么urllib2将无法将其解析为网页格式。
  2. 请求头缺失或不正确:在发送HTTP请求时,通常需要设置一些请求头信息,例如User-Agent、Accept等。如果请求头缺失或不正确,服务器可能无法正确识别客户端的需求,从而返回错误的数据格式。
  3. 网络连接问题:如果在发送HTTP请求的过程中出现网络连接问题,例如超时、断网等,那么urllib2可能无法正常接收到服务器返回的数据,从而导致无法获取实际数据。

为了解决这个问题,可以采取以下几个步骤:

  1. 检查服务器返回的数据格式:可以通过打印服务器返回的数据,查看其格式是否为网页格式。如果不是,可以尝试使用其他库或方法来解析该格式的数据。
  2. 检查请求头信息:确保请求头信息正确设置,包括User-Agent、Accept等。可以参考腾讯云提供的HTTP请求头文档(https://cloud.tencent.com/document/product/213/34601)来设置请求头。
  3. 检查网络连接:确保网络连接正常,可以尝试使用其他网络连接方式或者重试发送HTTP请求。

总结起来,urllib2不返回网页格式而是实际数据可能是由于服务器返回的数据格式问题、请求头缺失或不正确、网络连接问题等原因导致的。在解决该问题时,可以通过检查数据格式、请求头信息和网络连接来排查并解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python之web模块学习-- url

1  urllib2 简介     urllib2python自带一个访问网页及本地文件库。     ...2) urllib提供urlencode方法用来encode发送data,urllib2没有。这是为何urllib常和urllib2一起使用原因。...404 u.geturl() 返回返回数据实际url,但是会考虑发生重定向问题 u.info() 返回映射对象,该对象带有与url关联信息,对HTTP来说,返回服务器响应包含HTTP包头。...origin_req_host: 通常是发出请求主机名称,如果请求是无法验证url(通常是指不是用户直接输入url,比如加载图像页面镶入url),则后一个参数unverifiable设为...这是为什么呢?问题出在请求头信息(header)。 有的服务端有洁癖,不喜欢程序来触摸它。这个时候你需要将你程序伪装成浏览器来发出请求。请求方式就包含在header

71220

Python入门网络爬虫之精华版

服务器响应请求,发回网页内容。 浏览器解析网页内容。 网络爬虫要做,简单来说,就是实现浏览器功能。通过指定url,直接返回给用户所需要数据不需要一步步人工去操纵浏览器获取。...最基本抓取 抓取大多数情况属于get请求,即直接从对方服务器上获取数据。 首先,Python自带urllib及urllib2这两个模块,基本上能满足一般页面抓取。...这就是为什么如果你直接去爬网页本身url,你会找不到页面的实际内容。...如果“请求”之前有页面,依据上一步网址进行分析推导第1页。以此类推,抓取抓Ajax地址数据。 对返回json格式数据(str)进行正则匹配。...json格式数据,需从’\uxxxx’形式unicode_escape编码转换成u’\uxxxx’unicode编码。 7.

1.1K20

Python爬虫起点

一、Python有哪些网络库 在真实浏览网页我们是通过鼠标点击网页然后由浏览器帮我们发起网络请求,那在Python我们又如何发起网络请求呢?答案当然是库,具体哪些库?...身份验证或Cookie等,在Python3urllib2合并到了urllib。...由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作requests库也是使用比较多库。...猪哥就以某东商品页为例子带大家学习爬虫简单流程,为什么以某东下手不是某宝?...1.第一步:浏览器中找到你想爬取商品 ? ? ? ps:猪哥并不是在开车哦,为什么选这款商品?因为后面会爬取这款商品评价做数据分析,是不是很刺激!

1K20

手把手教你利用爬虫爬网页Python代码)

1. urllib2/urllib实现 urllib2和urllib是Python两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。...这是为什么呢?问题出在请求头信息,服务器会检验请求头,来判断是否是来自浏览器访问,这也是反爬虫常用手段。...,r.text返回是文本形式,r.encoding返回是根据HTTP头猜测网页编码格式。...输出结果:“text–>”之后内容在控制台看到是乱码,“encoding–>”之后内容是ISO-8859-1(实际编码格式是UTF-8),由于Requests猜测编码错误,导致解析文本出现了乱码...关于作者:范传辉,资深网虫,Python开发者,参与开发了多项网络应用,在实际开发积累了丰富实战经验,并善于总结,贡献了多篇技术文章广受好评。

2K10

这里是Python爬虫起点,抢占资源啦

一、Python有哪些网络库 在真实浏览网页我们是通过鼠标点击网页然后由浏览器帮我们发起网络请求,那在Python我们又如何发起网络请求呢?答案当然是库,具体哪些库?...身份验证或Cookie等,在Python3urllib2合并到了urllib。...由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作requests库也是使用比较多库。...五、爬取某东商品页 以某东商品页为例子带大家学习爬虫简单流程,为什么以某东下手不是某宝?...1.第一步:浏览器中找到你想爬取商品 ps:并不是在开车哦,为什么选这款商品?因为后面会爬取这款商品评价做数据分析,是不是很刺激!

56530

解决ModuleNotFoundError: No module named urllib2

这个错误通常是因为Python 3对​​urllib​​库进行了重构,将​​urllib​​模块分为了​​urllib.request​​和​​urllib.error​​两个模块,​​urllib2​​...在某个实际应用场景,我们需要使用Python来发送HTTP请求,获取网页内容。在Python 2,我们可以使用​​urllib2​​​库来实现这个功能。...我们定义了一个​​get_webpage_content​​函数,用于发送HTTP请求并返回网页内容。...最后使用​​.decode('utf-8')​​对内容进行解码,得到字符串格式网页内容。...请注意,这只是一个简单示例,实际应用可能还需要处理异常情况、处理HTTP响应状态码和头部信息等。

48040

手把手教你爬网页Python代码)

1. urllib2/urllib实现 urllib2和urllib是Python两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅。...这是为什么呢?问题出在请求头信息,服务器会检验请求头,来判断是否是来自浏览器访问,这也是反爬虫常用手段。...,r.text返回是文本形式,r.encoding返回是根据HTTP头猜测网页编码格式。...输出结果:“text-->”之后内容在控制台看到是乱码,“encoding-->”之后内容是ISO-8859-1(实际编码格式是UTF-8),由于Requests猜测编码错误,导致解析文本出现了乱码...关于作者:范传辉,资深网虫,Python开发者,参与开发了多项网络应用,在实际开发积累了丰富实战经验,并善于总结,贡献了多篇技术文章广受好评。

2.4K30

Python:爬虫系列笔记(2) -- 基本了解及urllib使用

比如它在抓取一个网页,在这个网他发现了一条道路,其实就是指向网页超链接,那么它就可以爬到另一张网上来获取数据。这样,整个连在一起大网对这之蜘蛛来说触手可及,分分钟爬下来不是事儿。...2.浏览网页过程 在用户浏览网页过程,我们可能会看到许多好看图片,比如 http://image.baidu.com/ ,我们会看到几张图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过...所以最重要部分是存在于HTML,下面我们就写个例子来扒一个网页下来。...1 python demo.py ? 看,这个网页源码已经被我们扒下来了,是不是很酸爽?...4.POST和GET数据传送 上面的程序演示了最基本网页抓取,不过,现在大多数网站都是动态网页,需要你动态地传递参数给它,它做出对应响应。所以,在访问时,我们需要传递数据给它。最常见情况是什么?

72660

Python 学习入门(6)—— 网页爬虫

Python抓取网页方法,任务是批量下载网站上文件。对于一个刚刚入门python的人来说,在很多细节上都有需要注意地方,以下就分享一下在初学python过程遇到问题及解决方法。...(需要登录,多线程抓取)可参考:python爬虫抓站一些技巧总结 1.2、抓取网页中文乱码 解决:用BeautifulSoup解析网页,BeautifulSoup是Python一个用于解析网页插件...*b',它会匹配文档从第一个a和最后一个b之间文本,也就是说如果遇到一个b,它不会停止,会一直搜索至文档末尾,直到它确认找到b是最后一个。...一般我们只想取某个字段值,贪婪模式既不能返回正确结果,还大大浪费了时间,所以非贪婪是必不可少。 2)、raw字符串使用:如果要匹配一个....=)来匹配前后文,匹配后不返回()内容,刚才例子便用到了这两个构造。

2.1K20

初学指南| 用Python进行网页抓取

如果可以直接通过API得到所需要信息,那么这个方法几乎总是优于网页抓取方法。因为如果可以从数据提供方得到结构化数据为什么还要自己建立一个引擎来提取同样数据?...不幸是,并不是所有的网站都提供API。一些网站是不愿意让读者通过结构化方式抓取大量信息,另一些网站是因为缺乏相关技术知识不能提供API。在这样情况下,该怎么做?...这种技术主要聚焦于把网络非结构化数据(HTML 格式)转变成结构化数据数据库或电子表格)。 可以用不同方式实施网页抓取,包括从Google Docs到几乎所有的编程语言。...准确地说,我会用到两个Python模块来抓取数据Urllib2:它是一个Python模块,用来获取URL。...如果正在寻找信息可以用简单正则表达式语句抓取,那么应该选择使用它们。对于几乎所有复杂工作,我通常更多地建议使用BeautifulSoup,不是正则表达式。

3.7K80

django queryset 去重 .distinct()说明

当请求 含有data参数时,HTTP请求为POST,不是GET。数据应该是缓存在一个标准application/x-www-form- urlencoded格式。...urllib.urlencode()函数用映射或2元组,返回一个这种格式字符串。通俗说就是如果想向一个URL发送 数据(通常这些数据是代表一些CGI脚本或者其他web应用)。...Encoding是在urlib模块完成不是在urlib2完成 。...作 为辨别浏览器身份User-Agent header是经常被用来恶搞和伪装,因为一些HTTP服务只允许某些请求来自常见浏览器不是脚本,或是针对不同浏览器返回不同版本。...json数据 resp.text #返回不是text数据 resp.headers['content-type'] #返回text/html;charset=utf-8 f =

1.7K20

初学指南| 用Python进行网页抓取

如果可以直接通过API得到所需要信息,那么这个方法几乎总是优于网页抓取方法。因为如果可以从数据提供方得到结构化数据为什么还要自己建立一个引擎来提取同样数据?...不幸是,并不是所有的网站都提供API。一些网站是不愿意让读者通过结构化方式抓取大量信息,另一些网站是因为缺乏相关技术知识不能提供API。在这样情况下,该怎么做?...这种技术主要聚焦于把网络非结构化数据(HTML 格式)转变成结构化数据数据库或电子表格)。 可以用不同方式实施网页抓取,包括从Google Docs到几乎所有的编程语言。...准确地说,我会用到两个Python模块来抓取数据: • Urllib2:它是一个Python模块,用来获取URL。...如果正在寻找信息可以用简单正则表达式语句抓取,那么应该选择使用它们。对于几乎所有复杂工作,我通常更多地建议使用BeautifulSoup,不是正则表达式。

3.2K50

pythonurllib模块方法

简介     urllib2python自带一个访问网页及本地文件库。    ...404 u.geturl() 返回返回数据实际url,但是会考虑发生重定向问题 u.info() 返回映射对象,该对象带有与url关联信息。...这是为什么呢?问题出在请求头信息(header)。 有的服务端有洁癖,不喜欢程序来触摸它。这个时候你需要将你程序伪装成浏览器来发出请求。请求方式就包含在header。    ...通过HTTP下载东西是非常简单; 实际上,只需要一行代码。...没有比这更简单了。   ② urlopen().read()方法总是返回bytes对象,不是字符串。记住字节仅仅是字节,字符只是一种抽象。 HTTP 服务器不关心抽象东西。

2K10

Python urllib2和urllib使用

Python中有很多库可以用来模拟浏览器发送请求抓取网页,本文中介绍使用urllib2来实现获取网页数据。...三、使用urllib来给url添加查询字符串 在我们使用urllib2获取网页数据时,肯定不是只获取首页数据,我们还需要获取一些其他页面。...这时候需要在url拼接查询字符串,Pythonurllib库提供了urlencode方法来将字典转换成查询字符串,urllib2没有urlencode,所以可以通过urllib生成查询字符串来给urllib2...POST方法响应是根据我们在请求体携带数据返回,通过data参数可以给请求对象设置请求体。...另一方面,之前我们获取到结果是一个html文件,这是一个网页页面,对于我们来说并不是特别友好,所以我们需要从html文件解析出我们需要那部分数据

1K40

python爬虫(五)_urllib2:Get请求和Post请求

本篇将介绍urllib2Get和Post方法,更多内容请参考:python学习指南 urllib2默认只支持HTTP/HTTPSGET和POST方法 urllib.urlencode() urllib...,需要编码成URL编码格式,然后作为url一部分,或者作为参数传到Request对象。...有道词典翻译网站: 输入测试数据,再通过使用Fiddler观察,其中有一条是POST请求,向服务器发送请求数据不是在url里,那么我们可以试着模拟这个POST请求。 ?...获取AJAX加载内容 有些网页内容使用AJAX加载,只要记得,AJAX一般返回是JSON,直接对AJAX地址进行post或get,就返回JSON数据了。...比如在下面的HTML代码,表单数据将因为(method="get")附加到URL上; First

2.3K60

python爬虫(四)_urllib2基本使用

本篇我们将开始学习如何进行网页抓取,更多内容请参考:python学习指南 urllib2基本使用 所谓网页抓取,就是把URL地址中指定网络资源从网络流读取出来,保存到本地。...在Python中有很多库可以用来抓取网页,我们先学习urllib2。...#导入urllib2库 import urllib2 #向指定url发送请求,并返回服务器类文件对象 response = urllib2.urlopen("http://www.baidu.com...: data(默认空):是伴随url提交数据(比如要post数据),同时HTTP请求将从"GET"方式改为"POST"方式。...User-Agent 但是这样直接用urllib2给一个网站发送请求的话,确实略有些唐突了,就好比,人家每家都有门,你以一个路人身份直接闯进去显然不是很礼貌。

957100

爬虫工程师面试题总结,带你入门Python爬虫

c、内存池机制 Python提供了对内存垃圾收集机制,但是它将不用内存放到内存池不是返回给操作系统。 1>Pymalloc机制。...6、Python__new__与__init方法区别 __new__:它是创建对象时调用,会返回当前对象一个实例,可以用_new_来实现单例 __init__:它是创建对象后调用,对当前对象一些实例初始化...) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成) 4.对部分数据进行加密处理(数据是乱码) 解决方法: 对于基本网页抓取可以自定义headers,添加headers数据...使用多个代理ip进行抓取或者设置抓取频率降低一些, 动态网页可以使用selenium + phantomjs 进行抓取 对部分数据进行加密,可以使用selenium进行截图,使用python自带...; 在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用POST方式; GET在url传递数据数据信息放在请求头中;POST请求信息放在请求体中进行传递数据; GET传输数据数据量较小

1.3K30

urllib与urllib2学习总结(python2.7.X)

目前使用dataHTTP请求是唯一。当请求含有data参数时,HTTP请求为POST,不是GET。...数据应该是缓存在一个标准application/x-www-form-urlencoded格式。urllib.urlencode()函数用映射或2元组,返回一个这种格式字符串。...例如在网上填form(表单)时,浏览器会POST表单内容,这些数据需要被以标准格式编码(encode),然后作为一个数据参数传送给Request对象。...Encoding是在urlib模块完成不是在urlib2完成。...作为辨别浏览器身份User-Agent header是经常被用来恶搞和伪装,因为一些HTTP服务只允许某些请求来自常见浏览器不是脚本,或是针对不同浏览器返回不同版本。

69320

自学Python四 爬虫基础知识储备

爬虫就是一个不断去抓去网页程序,根据我们需要得到我们想要结果!但我们又要让服务器感觉是我们人在通过浏览器浏览不是程序所为!...归根到底就是我们通过程序访问网站得到html代码,然后分析html代码获取有效内容过程。下面让我们从最简单爬虫开始: 爬取一个页面源代码 在python,抓取网页库是urllib2。...POST和GET数据传送   平常我们在浏览网页时候难免涉及到登录注册,填写表单,或者跳转到某个页面,这时候我们要跟服务器进行交互,向服务器发送数据,发送数据方式呢就是Post和Get,两者区别在于...result=true  其中 result=true就是Get传递数据,POST相当于Get就安全多了,它不会在链接上显示所有参数。   ...在网页访问过程,不可避免要用到cookies,我们程序要模拟浏览器行为,在访问网页时候有时候要带上特定cookies,这样才能成功访问网页

43610
领券