无法获取请求中网页的响应

2024-09-30 10:32:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的大学网站做一个机器人。在该网站验证是在两个阶段在第一阶段只需要用户名和第二步只需要密码。但出于这个目的,我们可以直接进入密码页,因为用户名被嵌入到url中。这是链接http://mydy.dypatil.edu/rait/login/index.php?uname=san.yad.rt15@rait.ac.in&wantsurl=

下面是我的代码

import requests
from lxml import html

session_requests = requests.session()

login_url = "http://mydy.dypatil.edu/rait/login/index.php?uname=san.yad.rt15@rait.ac.in&wantsurl="
result = session_requests.get(login_url)
form_data = {
    "uname_static": "san.yad.rt15@rait.ac.in",
    "username": "san.yad.rt15@rait.ac.in",
    "uname": "san.yad.rt15@rait.ac.in",
    "password": "dypatil@123"
}

result = session_requests.post(
    login_url,
    data=form_data,
    headers=dict(referer=login_url)
)
url = "http://mydy.dypatil.edu/rait/my/"
result = session_requests.get(
    url,
    headers = {"Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0",
    "Connection": "Keep-Alive",
    "Content-Language": "en",
    "Content-Length": "427",
    "Content-Type": "text/html; charset=utf-8",
    "Keep-Alive": "timeout=5, max=98",
    "Location": "http://mydy.dypatil.edu/rait/",
    "Pragma": "no-cache",
    "Server": "Apache/2.4.6 (CentOS) PHP/5.4.16",
    "X-Powered-By": "PHP/5.4.16"}
)
tree = html.fromstring(result.content)
print(tree.text)
# subjects = tree.xpath('//*[@class="launchbutton"/@href]')
#
# for subject in subjects:
#     print(subject)

这不显示任何错误。当我检查状态代码时,它显示200 Ok。但作为回应print(tree.text)它显示了几条银行线。你能在任何地方纠正我吗


Tags: inhttpurlsessionloginrequestsacsan
1条回答
网友
1楼 · 发布于 2024-09-30 10:32:01

改变这个

print(tree.text)

为了这个

print(html.tostring(tree))

要获取一些数据:

from lxml import etree

for elem in tree.xpath("//div[@class='name']"):
     print etree.tostring(elem, pretty_print=True)

退货

b'<div class="name">sharad Jadhav</div>\n'
b'<div class="name">Admin User</div>\n'
b'<div class="name">sharad Jadhav</div>\n'

相关问题 更多 >

    热门问题