【问题标题】:how to target specific input for posting with requests or requests_html如何定位特定输入以使用 requests 或 requests_html 发布
【发布时间】:2020-02-13 14:49:01
【问题描述】:

我需要在这里填写一个唯一的输入 https://outline.com/ 当我用 firefox 执行 ctrl+U 时,我认为 id 被一些 js 效果隐藏了,在我看来,id 是“源”,但我怎样才能看到它并定位它以发布?

它试过这个:

import requests, requests_html
import json
url_out = "https://outline.com/"
url_target = "https://www.whatyouwanthere"

r = requests.post(url_out, data=json.dumps(url_target))

这项任务是否可以避免使用硒?

【问题讨论】:

    标签: python-3.x curl python-requests


    【解决方案1】:

    您与实际的解决方案相去甚远,但肯定有更多方法可以做到这一点。

    这行得通:

    import requests, json
    url_out = "http://outline-server-788914346.us-west-2.elb.amazonaws.com/article"
    url_target = "https://www.google.com"
    
    r = requests.get(url = url_out, params = {'source_url': url_target})
    data = r.json() 
    
    print(data)
    

    通过查看 devtools 中的网络活动并查看他们网站上使用的 app.js 文件,我能够找到这一点。主页上的表单只是使用文章 URL 查询 API,而 API 是在他们的服务上生成短 URL 的。

    老实说,我不确定这是否违反了他们的 ToS,您可能需要与他们核实一下。

    【讨论】:

    • 您在正常使用此链接之前尝试过吗:outline.com
    • requests.postrequests.get 不会将数据发送到 form,它会将数据发送到接收方法,通常是接收的服务器端位置数据并对其进行处理。如果您查看站点上的大多数form 标签,您会看到action,这个路径实际上是处理表单数据的路径。如果您想自动填写表格,则必须使用 selenium 之类的东西。
    猜你喜欢
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2021-07-15
    • 2017-07-17
    • 2018-02-28
    相关资源
    最近更新 更多