Python Beautifulsoup-提交表单数据

Python Beautifulsoup-提交表单数据,python,post,beautifulsoup,request,Python,Post,Beautifulsoup,Request,我正在尝试使用BeautifulSoup以编程方式从网站下载(打开)数据 该网站使用的是php表单,您需要提交输入数据,然后在此表单中输出结果链接 我的做法如下 步骤1:通过请求发布表单数据 步骤2:通过BeautifulSoup解析结果链接 然而,这似乎不起作用/我做错了,因为post方法似乎不起作用,步骤2甚至不可能,因为没有可用的结果 这是我的密码: from bs4 import BeautifulSoup import requests def get_text_link(soup)

我正在尝试使用BeautifulSoup以编程方式从网站下载(打开)数据

该网站使用的是php表单,您需要提交输入数据,然后在此表单中输出结果链接

我的做法如下

步骤1:通过请求发布表单数据

步骤2:通过BeautifulSoup解析结果链接

然而,这似乎不起作用/我做错了,因为post方法似乎不起作用,步骤2甚至不可能,因为没有可用的结果

这是我的密码:

from bs4 import BeautifulSoup
import requests

def get_text_link(soup):
    'Returns list of links to individual legal texts'
    ergebnisse = soup.findAll(attrs={"class":"einErgebnis"})
    if ergebnisse:
        links = [el.find("a",href=True).get("href") for el in ergebnisse]
    else:
        links = []
    return links

url = "https://www.justiz.nrw.de/BS/nrwe2/index.php#solrNrwe"

# Post specific day to get one day of data
params ={'von':'01.01.2018', 
     'bis': '31.12.2018',
     "absenden":"Suchen"} 
response = requests.post(url,data=params)
content = response.content
soup = BeautifulSoup(content,"lxml")

resultlinks_to_parse = get_text_link(soup) # is always an empty list
# proceed from here....
有人能告诉我我做错了什么吗。我不太熟悉申请职位。例如,“bis”的表单字段如下所示:

如果我的方法是有缺陷的,我会通知任何提示如何处理这种网站


谢谢

我发现了您的请求中存在的问题

我的调查提供了以下参数:

gerichtst:
yp:
gerichtsbarkeit:
gerichtsort:
entscheidungsart:
date:
von:    01.01.2018
bis:    31.12.2018
validFrom:
von2:
bis2:
aktenzeichen:
schlagwoerter:
q:
method: stem
qSize:  10
sortieren_nach: relevanz
absenden: Suchen
advanced_search: true
我认为
qsize
参数对于您的
POST
请求是必需的 因此,您必须将参数替换为:

params = {
        'von':'01.01.2018',
        'bis': '31.12.2018',
        'absenden': 'Suchen',
        'qSize': 10
        }
这样做,这里是我打印
resultlinks\u to\u parse

print(resultlinks_to_parse)
输出:

[
'http://www.justiz.nrw.de/nrwe/lgs/detmold/lg_detmold/j2018/03_S_69_18_Urteil_20181031.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/10_Sa_1122_17_Urteil_20180126.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/13_TaBV_10_18_Beschluss_20181123.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/10_Sa_1810_17_Urteil_20180629.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/10_Sa_1811_17_Urteil_20180629.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/11_Sa_1196_17_Urteil_20180118.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/11_Sa_1775_17_Urteil_20180614.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/11_SaGa_9_18_Urteil_20180712.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/12_Sa_748_18_Urteil_20181009.html',
'http://www.justiz.nrw.de/nrwe/arbgs/hamm/lag_hamm/j2018/12_Sa_755_18_Urteil_20181106.html'
]

乍一看,您的字典不包含用于分隔“bis”键的逗号(“,”)。我怀疑这能解决你的问题,但显然你需要先解决这个问题。这实际上只是在这篇文章中。在我的代码中,它是在。所以,是的,你是对的,我需要改变(这里),但这并不能解决我的问题。谢谢你的提示!对这是有效的。非常感谢你的帮助!您是如何找到可用参数的。我正在努力调查这类事情。总是在黑盒子上操作…@FredMaster不客气。为了显示参数,我刚刚在我的web浏览器(Firefox)的开发者控制台中打开了“网络”选项卡。然后我点击了右边的POST请求,并选择在细节请求部分显示“参数”选项卡(在右边)