Разбор HTML значение в Python - PullRequest
1 голос
/ 30 марта 2020

Это фрагмент HTML У меня есть:

<body>
    <form method="post" action="./pagam.aspx?a=9095709&amp;b=RkVsgP1UClEdbu0oUvc8pKDxd5OcslXk1xHlVhK7uuqH_7ZfaquNNa1VHgeSZWm9hAq4s7Thk6wIhoRsooDoMF7U2nzmVDDbRujlxaPTg8I" id="aspnetForm" autocomplete="off">
<div>

Я хотел бы извлечь это значение:

./pagam.aspx?a=9095709&amp;b=RkVsgP1UClEdbu0oUvc8pKDxd5OcslXk1xHlVhK7uuqH_7ZfaquNNa1VHgeSZWm9hAq4s7Thk6wIhoRsooDoMF7U2nzmVDDbRujlxaPTg8I

из HTML.

В настоящее время я не уверен, как это сделать:

parsed_html = BeautifulSoup(html, 'lxml')
a = parsed_html.body.find('div', attrs={'form method':'post'})
print (a)

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вот что вы можете попробовать:

>>> from bs4 import BeautifulSoup
>>> s = BeautifulSoup('<body>
<form method="post" name="mainForm" action="./pagam.aspx?a=9095709&amp;b=RkVsgP1UClEdbu0oUvc8pKDxd5OcslXk1xHlVhK7uuqH_7ZfaquNNa1VHgeSZWm9hAq4s7Thk6wIhoRsooDoMF7U2nzmVDDbRujlxaPTg8I" id="aspnetForm" autocomplete="off"></body>')
>>> s.find("form", {"name":"mainForm"})

>>> s.find("form", {"name":"mainForm"})['action']

u'./pagam.aspx?a=9095709&amp;b=RkVsgP1UClEdbu0oUvc8pKDxd5OcslXk1xHlVhK7uuqH_7ZfaquNNa1VHgeSZWm9hAq4s7Thk6wIhoRsooDoMF7U2nzmVDDbRujlxaPTg8I'
1 голос
/ 31 марта 2020
import re
r = re.compile('action="\S+"')
r.match(line)
line[r.start():r.end()].split("=")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...