几天来,我一直在撞墙,所以我想我会问 SO 社区。我想要一个 python 脚本,除其他外,它可以点击网站表单上的“接受”按钮以下载文件。不过,为此,我需要访问该表单。
这是我要下载的文件类型的示例。我知道其中有一个未命名的表单,其中包含接受条款和下载文件的操作。我也知道可以在其中找到表单的 div 是 main-content div。
但是,每当我用 BeautifulSoup 解析网页时,我都无法获取 main-content div。我设法获得的最接近的是它之前的 main_content 链接,它没有通过 BeautifulSoup 的对象为我提供任何信息。
这是我脚本中的一些代码:
web_soup = soup(urllib2.urlopen(url))
parsed = list(urlparse(url))
ext = extr[1:]
for downloadable in web_soup.findAll("a"):
encode = unicodedata.normalize('NFKD',downloadable.text).encode('UTF-8','ignore')
if ext in str.lower(encode):
if downloadable['href'] in url:
return ("http://%s%s" % (parsed[1],downloadable['href']))
for div in web_soup.findAll("div"):
if div.has_key('class'):
print(div['class'])
if div['class'] == "main-content":
print("Yep")
return False
Url 是我正在查看的 url 的名称(所以是我之前发布的 url)。extr 是我希望以 .extension 形式下载的文件类型,但这与我的问题并不真正相关。相关的代码是第二个 for 循环,我试图在其中循环遍历 div。第一段代码(第一个 for 循环)是在另一种情况下用于获取下载链接的代码(当给定脚本的 url 是由文件扩展名标记的“下载链接”时,例如带有内容类型的 .zip text/html),所以请随意忽略它。我添加它只是为了上下文。
我希望我提供了足够的细节,尽管我确信我没有。如果您需要有关我正在做什么的更多信息,请告诉我,我很乐意提供帮助。谢谢,堆栈。