在python中使用请求函数将数据提交到网站并回调响应

时间:2016-07-11 05:51:13

标签: python python-requests

我正在尝试使用python中的请求函数将文本文件的文本内容发布到网站,在所述网站上提交文本进行分析,然后将结果拉回到python中。我已经阅读了这里和其他网站上的一些回复,但尚未弄清楚如何正确地将代码修改为新网站。

我熟悉美丽的汤,所以拉入网页内容并删除HTML不是问题,它提交的数据是我不理解的。

我的代码目前是:

import requests

fileName = "texttoAnalyze.txt"        
fileHandle = open(fileName, 'rU');
url_text = fileHandle.read()

url = "http://www.webpagefx.com/tools/read-able/"
payload = {'value':url_text}
r = requests.post(url, payload)
print r.text

此代码以网站的html返回,但未承认我正在尝试提交表单。

感谢任何帮助。非常感谢。

2 个答案:

答案 0 :(得分:0)

您需要发送网站发送的相同请求,通常您可以使用Web调试工具(如chrome / firefox开发人员工具)获取这些请求。

在这种情况下,请求发送到的网址是:http://www.webpagefx.com/tools/read-able/check.php

使用以下参数:tab=Test+by+Direct+Link&directInput=SOME_RANDOM_TEXT

所以你的代码应该是这样的:

url = "http://www.webpagefx.com/tools/read-able/check.php"
payload = {'directInput':url_text, 'tab': 'Test by Direct Link'}
r = requests.post(url, data=payload)
print r.text
祝你好运!

答案 1 :(得分:0)

有两个帖子参数,标签 directInput

import requests

post = "http://www.webpagefx.com/tools/read-able/check.php"
with open("in.txt") as f:
    data = {"tab":"Test by Direct Link",
            "directInput":f.read()}
    r = requests.post(post, data=data)
    print(r.content)