`
wooce
  • 浏览: 184746 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用python的urllib抓取ASP.net的post的分页的问题和解决

 
阅读更多

友情帮朋友写一个小程序,需要自动抓取一个互联网网站的网页并进行分析。

选用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......

这一段, 有__VIEWSTATE 数据的呀。 再回去检查Firebug, 发现,原来虽然Firebug的Post -> ”参数“ 下面是没有__VIEWSTATE, 但是Firebug下方的Post -> "源代码” 那里则是有的: 

  ......&__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=H5AMBVqaLZCXd...

  于是在python程序里补上__VIEWSTATE这个参数的值, 经检验问题解决!!

   所以这个问题的起因是Firefox的firebug里的post参数没有显示__VIESTATE,  这个firebug插件的bug也许是因为__VIESTATE的值太长了?

 

 

 

1
0
分享到:
评论

相关推荐

    python urllib3

    - **发起GET和POST请求**:urllib3可以发送HTTP GET和POST请求,以及其他HTTP方法。 - **HTTP认证**:支持基本认证、摘要认证以及自定义认证方式。 - **请求头管理**:可以设置和修改请求头,如User-Agent、...

    Python urllib urllib2 urllib模块安装说明

    因此,我们将围绕requests库的安装进行深入解析,并简要介绍urllib和urllib2的基本概念及其在Python中的应用。 ### Python urllib 和 urllib2 模块 #### 1. urllib模块简介 `urllib`是Python内置的一个用于处理URL...

    python urllib3 requests

    Python的urllib3和requests库是进行HTTP请求的两个常用工具,它们在Web开发、数据抓取、API交互等场景中扮演着重要角色。这里我们将深入探讨这两个库的特点、使用方法以及它们之间的区别。 首先,urllib3是Python的...

    Python urllib urllib模块

    在Python 3.x中,urllib被进一步拆分为urllib.request、urllib.parse和urllib.error三个子模块,以更清晰地组织功能。 1. **urllib.request**: 这个子模块负责实际的HTTP请求。它提供了opener对象,可以用来打开URL...

    python urllib使用PPT

    python urllib 使用PPT python urllib使用PPT

    python模块urllib3.zip

    使用Python 3.x版本运行py文件时报错 No module named 'urllib3' 一开始参照网上的安装方法通过pip来安装,未成功pip install urllib3 后面找到了这个文件,分享给大家。 使用方法是下载解压后,cmd里切换到解压...

    python使用urllib2提交http post请求的方法

    本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....

    Python库 | urllib3-1.25.9.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:urllib3-1.25.9.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    「Python系列」Python urllib库(操作网页URL对网页的内容进行抓取处理).md

    `urllib` 是 Python 的一个标准库,主要用于处理 URL 操作,比如抓取网页内容、解析 URL 和处理异常情况等。对于从事 Web 开发或者需要从互联网上抓取数据的开发者来说,`urllib` 提供了一系列强大的工具和功能。 #...

    python_urllib3

    urllib3 is a python lib 1.线程安全 2.连接池 3.客户端SSL/TLS验证 4.文件分部编码上传 5.协助处理重复请求和HTTP重定位 6.支持压缩编码 7.支持HTTP和SOCKS代理

    python抓取并保存html页面时乱码问题的解决方法

    此外,使用适当的库和模块(如`chardet`和`BeautifulSoup`),以及确保在读写文件时指定正确的编码,也是解决问题的关键。在实践中,应该养成良好的编码处理习惯,以确保数据的准确性和一致性。

    python urllib2详解及实例 Python开发技术文章_教程 - 红黑联盟.pdf

    `urllib2`是Python标准库中的一个强大工具,用于处理URLs的获取和解析。尽管在Python 3中已被`urllib.request`和`urllib.parse`等模块取代,但在Python 2中,`urllib2`仍然是处理HTTP和FTP请求的首选。本文将深入...

    python 2.7 urllib2的详细使用教程

    python 2.7 urllib2的详细使用教程

    pythonurllib2模块实例简介.pdf

    在Python编程中,urllib2是进行网络请求的一个常用模块,尤其在教育领域,学习如何使用urllib2是理解和构建网络应用程序的基础。 urllib2的核心功能是urlopen函数,它能够打开并读取一个URL。如以下代码所示: ```...

    Python爬虫基础之Urllib库

    Python 的 Urllib 库是 Python 语言中最基本的网络请求库,提供了对 URL 的访问和处理能力。该库包含了多种功能,包括访问 URL、设置 headers、代理设置、超时时间设置等。 1. 访问 URL 读取返回结果 Urllib 库的 ...

    【Python爬虫】 基于 urllib 抓取指定贴吧的指定页的数据,保存到本地文件

    此资源是一个基于Python的爬虫脚本,利用urllib库抓取指定贴吧的指定页数据,并将抓取到的内容保存到本地文件中。该脚本可以帮助用户快速获取贴吧中的帖子标题、内容、发布时间等信息,并可以用于数据分析、内容提取...

    python urllib2模块实例简介.docx

    `urllib2` 是 Python 早期用于处理 URL 请求的标准库之一,在 Python 2.x 版本中广泛使用。随着 Python 3.x 的普及,该模块已被整合进 `urllib` 包中,并有所调整。尽管如此,了解 `urllib2` 仍然有助于更好地掌握...

Global site tag (gtag.js) - Google Analytics