友情帮朋友写一个小程序,需要自动抓取一个互联网网站的网页并进行分析。
选用python和其urllib,urllib2来搞这事情。 抓取第一页的数据很顺利,然而在抓取第2页等其他页的数据时却遇到了问题,虽然有返回数据,但返回的数据不是正常的第2页的页面,而是以下的出错提示:
53|error|500|Object reference not set to an instance of an object.|
在这问题上卡住了一两小时,用“Object reference not set to an instance of an object"做关键词去搜解决方案无果。后来看到有人提到:
”一般来讲 asp.net中的postback的分页都要提供 __EVENTTARGET、__EVENTARGUMENT、__VIEWSTATE这三个参数,前两个一般都是有规律的,后面这个就比较麻烦,每次的提交得到的都不同,所以要在每次提交分页前把当前页的__VIEWSTATE取到!“
然后有所启发,检查了一下我在程序里提交的post的参数,发现其中没有__VIEWSTATE,但是我提交的post的参数是在firefox里用firebug监控时copy过来的,按理不应有遗漏?!
再细查,在网页里是有
<inputtype="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Bn/4+NZh/pRpuKJs+mDE6k9r3Lc1DIxEU7bhPlEDi5Gn3oW......
......&__EVENTTARGET=&__EVENTARGUMENT
=&__LASTFOCUS=&__VIEWSTATE=H5AMBVqaLZCXd...
于是在python程序里补上__VIEWSTATE这个参数的值, 经检验问题解决!!
所以这个问题的起因是Firefox的firebug里的post参数没有显示__VIESTATE, 这个firebug插件的bug也许是因为__VIESTATE的值太长了?
相关推荐
- **发起GET和POST请求**:urllib3可以发送HTTP GET和POST请求,以及其他HTTP方法。 - **HTTP认证**:支持基本认证、摘要认证以及自定义认证方式。 - **请求头管理**:可以设置和修改请求头,如User-Agent、...
因此,我们将围绕requests库的安装进行深入解析,并简要介绍urllib和urllib2的基本概念及其在Python中的应用。 ### Python urllib 和 urllib2 模块 #### 1. urllib模块简介 `urllib`是Python内置的一个用于处理URL...
Python的urllib3和requests库是进行HTTP请求的两个常用工具,它们在Web开发、数据抓取、API交互等场景中扮演着重要角色。这里我们将深入探讨这两个库的特点、使用方法以及它们之间的区别。 首先,urllib3是Python的...
在Python 3.x中,urllib被进一步拆分为urllib.request、urllib.parse和urllib.error三个子模块,以更清晰地组织功能。 1. **urllib.request**: 这个子模块负责实际的HTTP请求。它提供了opener对象,可以用来打开URL...
python urllib 使用PPT python urllib使用PPT
使用Python 3.x版本运行py文件时报错 No module named 'urllib3' 一开始参照网上的安装方法通过pip来安装,未成功pip install urllib3 后面找到了这个文件,分享给大家。 使用方法是下载解压后,cmd里切换到解压...
本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....
资源分类:Python库 所属语言:Python 资源全名:urllib3-1.25.9.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
`urllib` 是 Python 的一个标准库,主要用于处理 URL 操作,比如抓取网页内容、解析 URL 和处理异常情况等。对于从事 Web 开发或者需要从互联网上抓取数据的开发者来说,`urllib` 提供了一系列强大的工具和功能。 #...
urllib3 is a python lib 1.线程安全 2.连接池 3.客户端SSL/TLS验证 4.文件分部编码上传 5.协助处理重复请求和HTTP重定位 6.支持压缩编码 7.支持HTTP和SOCKS代理
此外,使用适当的库和模块(如`chardet`和`BeautifulSoup`),以及确保在读写文件时指定正确的编码,也是解决问题的关键。在实践中,应该养成良好的编码处理习惯,以确保数据的准确性和一致性。
`urllib2`是Python标准库中的一个强大工具,用于处理URLs的获取和解析。尽管在Python 3中已被`urllib.request`和`urllib.parse`等模块取代,但在Python 2中,`urllib2`仍然是处理HTTP和FTP请求的首选。本文将深入...
python 2.7 urllib2的详细使用教程
在Python编程中,urllib2是进行网络请求的一个常用模块,尤其在教育领域,学习如何使用urllib2是理解和构建网络应用程序的基础。 urllib2的核心功能是urlopen函数,它能够打开并读取一个URL。如以下代码所示: ```...
Python 的 Urllib 库是 Python 语言中最基本的网络请求库,提供了对 URL 的访问和处理能力。该库包含了多种功能,包括访问 URL、设置 headers、代理设置、超时时间设置等。 1. 访问 URL 读取返回结果 Urllib 库的 ...
此资源是一个基于Python的爬虫脚本,利用urllib库抓取指定贴吧的指定页数据,并将抓取到的内容保存到本地文件中。该脚本可以帮助用户快速获取贴吧中的帖子标题、内容、发布时间等信息,并可以用于数据分析、内容提取...
`urllib2` 是 Python 早期用于处理 URL 请求的标准库之一,在 Python 2.x 版本中广泛使用。随着 Python 3.x 的普及,该模块已被整合进 `urllib` 包中,并有所调整。尽管如此,了解 `urllib2` 仍然有助于更好地掌握...