使用请求进行网页抓取 - Python

Web Scraping using Requests - Python

我正在尝试使用 Resquest 库获取数据,但我做错了。我的解释,手动搜索:

URL - https://www9.sabesp.com.br/agenciavirtual/pages/template/siteexterno.iface?idFuncao=18

我填写“Informe o RGI”字段,然后单击 Prosseguir 按钮(如“下一步”):

enter image description here

我得到这个结果:

enter image description here

在编码之前,我进行了手动搜索并检查了表单数据:

enter image description here

然后我用这段代码试了一下:

import requests

data = { "frmhome:rgi1": "0963489410"}

url = "https://www9.sabesp.com.br/agenciavirtual/block/send-receive-updates"
res = requests.post(url, data=data)

print(res.text)

我的输出是:

<session-expired/>

我做错了什么?

非常感谢。

当您使用浏览器访问该站点时,会创建一个会话并将其存储在您计算机上的 cookie 中。当您发出 POST 请求时,cookie 会随请求一起发送。您收到 session-expired 错误,因为您没有随请求发送任何会话数据。

试试这个代码。它首先请求入口页面并存储 cookie。然后 cookie 随 POST 请求一起发送。

import requests

session = requests.Session() # start session

# get entry page with cookies
response = session.get('https://www9.sabesp.com.br/agenciavirtual/pages/home/paginainicial.iface', timeout=30)
cks = session.cookies  # save cookies with Session data
print(session.cookies.get_dict())

data = { "frmhome:rgi1": "0963489410"}

url = "https://www9.sabesp.com.br/agenciavirtual/block/send-receive-updates"
res = requests.post(url, data=data, cookies=cks)  # send cookies with request

print(res.text)