Fre*_*ter 5 python post beautifulsoup request
我正在尝试使用 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....
Run Code Online (Sandbox Code Playgroud)
有人能告诉我我做错了什么吗?我不太熟悉请求帖子。“bis”的表单字段例如如下所示:
<input id="bis" type="text" name="bis" size="10" value="">
如果我的方法有缺陷,我将不胜感激任何有关如何处理此类网站的提示。
谢谢!
小智 3
我已经发现您的请求存在什么问题。
我的调查给出了以下参数可用:
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
Run Code Online (Sandbox Code Playgroud)
我认为该qsize参数对于您的POST请求是强制性的所以,您必须通过以下方式替换您的参数:
params = {
'von':'01.01.2018',
'bis': '31.12.2018',
'absenden': 'Suchen',
'qSize': 10
}
Run Code Online (Sandbox Code Playgroud)
这样做,这是我打印时的结果resultlinks_to_parse
print(resultlinks_to_parse)
Run Code Online (Sandbox Code Playgroud)
输出:
[
'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'
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12215 次 |
| 最近记录: |