Python,请求:使用请求,Python帮助在此网站上提交表单

时间:2018-08-24 04:45:26

标签: python python-requests

我能够提交一个表格来捕获此网站上的各个页面数据:www.asx.com.au

通常,在搜索栏中,您将输入股票代码(例如,“ Woolworths”为“ WOW”),然后单击搜索,然后转到该股票页面。

这是我正在尝试的代码。问题是,表单没有名称,所以我不确定如何引用它。任何帮助表示赞赏:

import requests

url = 'https://www.asx.com.au/s/search.html'

payload = {'query':'WOW'}

r = requests.get(url, params=payload)

with open("requests_results.html","wb") as f:

    f.write(r.content)

2 个答案:

答案 0 :(得分:1)

欢迎来到Stackoverflow!

您要做的就是将URL更改为https://search.asx.com.au/s/search.html?query=WOW&collection=asx-meta&profile=web,该URL在您搜索任何术语时在网站中形成。因为网站使用GET方法将数据传递为形式,该形式接受URL本身(?query=WOW&collection=asx-meta&profile=web)中字符串参数的参数。

因此代码将类似于

import requests
url = 'https://search.asx.com.au/s/search.html?query=WOW&collection=asx-meta&profile=web'
with open("requests_results.html","wb") as f:
    f.write(requests.get(url).content)

干杯!

答案 1 :(得分:0)

找到了如何使用请求传递内容以构造URL的方法(在“将参数传递到URL”下):http://docs.python-requests.org/en/master/user/quickstart/

  
    
      

有效载荷= {'key1':'value1','key2':'value2'}       r = request.get('http://httpbin.org/get',params = payload)