从BeautifulSoup结果中获取表单"action

5 投票
1 回答
16253 浏览
提问于 2025-04-18 05:22

我正在为一个网站编写一个Python解析器,目的是自动完成一些工作,但我对Python的“re”模块(正则表达式)不太熟悉,搞不定它。

req = urllib2.Request(tl2)
req.add_unredirected_header('User-Agent', ua)
response = urllib2.urlopen(req)
try:
    html = response.read()
except urllib2.URLError, e:
    print "Error while reading data. Are you connected to the interwebz?!", e

soup = BeautifulSoup.BeautifulSoup(html)
form = soup.find('form', id='form_product_page')
pret = form.prettify()

print pret

结果:

<form id="form_product_page" name="form_1362737440" action="/download/791055/164084/" method="get">
<input id="nojssubmit" type="submit" value="Download" />
</form>

确实,这段代码已经完成了,正是我开始时需要的。现在,我在想应该用什么方法从“form”标签中提取“action”属性。这是我从BeautifulSoup的响应中唯一需要的内容。

我试过用 form = soup.find('form', id='form_product_page').parent.get('action'),但是结果是'None'。我想提取的内容,比如说是“/download/791055/164084/”。这个在每个链接的URL中都是不同的。


变量(示例):
tl2 = http://example.com
ua = Mozilla Firefox / 14.04

1 个回答

12

你可以一步就搞定:

action = soup.find('form', id='form_product_page').get('action')

撰写回答