【Python爬虫】通过post函数获取aspx网页的第二页内容【asp.net】【aspx】

时间:2021-1-18

目标:爬取广东能源商务网的招标项目列表

关键难点:asp.net脚本语言,requests库的post函数,xpath的解析,openpyxl的使用

1 - 什么是asp.net?

微软公司推出的新一代脚本语言。

ASP.NET具备开发网站应用程序的一切解决方案,包括验证、缓存、状态管理、调试和部署等全部功能。

也就是所谓的 .NET 开发

2 - 什么是aspx?

aspx文件是微软的在服务器端运行的动态网页文件,属于ASP.NET技术。

3 - 爬虫时遇到的相关问题

(1)对动态网页一无所知

以前没爬取过动态网页,一开始用爬知网的思路爬广东能源商务网, 自然是碰壁,只能得到第一个页面的内容。后来通过搜索动态网页类型了解到 asp.net,经过比对确认了广东能源商务网使用的是 aspx动态网页

(2)确认了aspx网页后,不知道如何切换到第二个页面

了解到网页使用的是动态网页,自然是要向网页发出什么,然后接收回复信息,问题就是如何对动态网页发出请求并得到响应内容。经过搜索后确认了使用 requests 库里的 post() 函数提交表单。

post(url,data)

url:提交表单的对象

data:提交的内容

该函数会将提交完成后的网页内容返回的 Response对象

(3)post()函数如何使用?尤其是data值如何找出来?

1、确认了使用post()函数接下来要研究怎么用。关键点是:data 是什么?

     post要对网页提交信息,提交的信息储存在data里。接下来要了解 post() 的data参数格式,主要分为两种:json 和 dict。dict也就是字典,这个我比较熟悉,而且python没有内置json,还得导包。因此这里选择字典格式。

dict = {'a':'A','b':'B'}

2、字典格式要“键”对应“值”,但 data 里的键是什么?值是什么?

     经过一阵查询之后我确认了方法:万能的开发人员工具(F12) Network 里看,找到对应的网页信息的 Headers,看到最后的 Form Data,就是所需要的 data 的内容,如下图:

      __EVENTTAGET  为键,冒号后面的为值。

      __EVENTAGUMENT  为键,冒号后面的为值。

      通过爬虫,能够从第一个网页的代码中根据“键”得到“值”,然后组成一个 dict,接下来就能进行 post() 

(4)中文乱码

request在 get() 和 post() 之后都会返回一个 Response 对象。这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。

其中返回的网页部分会存在 .content 和 .text 两个对象中

一般情况下,.text()  能直接返回一个字符串,更方便,但因为解码问题会出现乱码。

这时候就要用到 .content() 返回一个bytes(字节码),接着用 decode() 进行编码,返回正确编码后的字符串。

a = html.content.decode('utf-8')

(5)网页证书问题

 .get() 或者 .post() 中加入 verify = False,跳过SSL验证

r = requests.post(url=url, data=data, headers=headers, verify=False)

 

 

 

要使用Python爬虫获取网页内容,可以按照以下步骤进行操作。 第一步:安装requests库和BeautifulSoup库。这两个库是Python常用的爬虫工具,requests库用于发送HTTP请求,而BeautifulSoup库用于解析HTML页面。可以使用pip命令来安装这两个库。 第二步:导入requests和BeautifulSoup库。在Python脚本中导入这两个库,以便后续使用它们的功能。 第三步:发送HTTP请求并获取网页内容。使用requests库发送HTTP请求,可以使用get()方法来获取网页内容。将目标网址作为参数传递给get()方法,并将返回的响应保存在一个变量中。 第四步:解析网页内容。使用BeautifulSoup库对网页内容进行解析。可以使用BeautifulSoup的构造函数网页内容和解析器类型作为参数传递进去,并将返回的BeautifulSoup对象保存在一个变量中。 第五步:提取需要的信息。通过BeautifulSoup对象可以使用一些方法来提取网页中的特定信息,例如find()方法和find_all()方法来查找特定的标签和属性。可以使用这些方法来提取想要的数据。 第六步:处理提取的信息。根据需求对提取的信息进行处理,可以将其保存到文件中、存储到数据库中或进行进一步的分析和处理。 综上所述,以上就是使用Python爬虫获取网页内容的一般步骤。通过安装必要的库、发送HTTP请求、解析网页内容、提取需要的信息和处理提取的信息,我们可以实现获取网页内容的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值