【问题标题】:Python 2.7 posting, and getting result from web sitePython 2.7 发布,并从网站获取结果
【发布时间】:2023-04-06 05:29:01
【问题描述】:

提前感谢您的帮助。我正在尝试编写一个 python 脚本,将 IP 地址发布到下面引用的站点,并在终端或文件中打印出结果,然后立即读取文件。

这是我的脚本:

#!/usr/bin/env python

import requests


IP = raw_input("Enter IP address here: ")

Alert_URL = 'http://www.blacklistalert.org'


def submit_form():
    """Submit a form"""
    payload = IP

    # make a get request
    resp = requests.get(Alert_URL)
    print "Response to GET request: %s" % resp.content

    # send POST request
    resp = requests.post(Alert_URL, payload)
    print "Headers from a POST request response: %s" % resp.headers
    # print "HTML Response: %s" %resp.read()


if __name__ == '__main__':
    submit_form()

该站点在网页上有输入IP地址的部分,并检查该站点我发现要输入的行如下:

<form method=POST onsubmit="document.forms[0].submit.disabled='true';">
IP or Domain <input onclick="this.value='';" name=q value=11.11.154.23>

我想以某种方式使用上面的输入部分将我想要检查的 IP 地址发布到站点。例如使用 raw_input 发布到 'value=' 部分,并获得结果。

感谢您的帮助。

【问题讨论】:

    标签: python-2.7 web web-scraping


    【解决方案1】:

    你需要解析PHPSESSID并发布:

    import requests
    from bs4 import BeautifulSoup
    
    
    ip = raw_input("Enter IP address here: ")
    
    data = {"q":  ip} # ip goes here
    url = "http://www.blacklistalert.org/"
    
    with requests.Session() as s:
        # get the page first to parse
        soup = BeautifulSoup(s.get(url).content)
        # extract and add the PHPSESSID
        PHPSESSID = soup.select_one("input[name=PHPSESSID]")["value"]
        data["PHPSESSID"] = PHPSESSID
        # finally post
        res = s.post(url, data=data)
        print(res)
        print(res.content)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多