【发布时间】:2019-08-15 22:23:42
【问题描述】:
我正在尝试使用 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”的表单域,例如如下所示:
<input id="bis" type="text" name="bis" size="10" value="">
如果我的方法有缺陷,我会感谢任何有关如何处理此类网站的提示。
谢谢!
【问题讨论】:
-
乍一看,您的字典不包含逗号 (',') 用于分隔 'bis' 键。我怀疑这能解决你的问题,但显然你需要先解决这个问题。
-
这实际上只在这篇文章中。在我的代码中。所以,是的,你是对的,我需要改变(在这里)但它不能解决我的问题。不过感谢您的提示!
标签: python post beautifulsoup request