提交 Javascript 表格并使用 Python 抓取

Submiting Javascript Form and Scrape with Python

我在网站中有以下 HTML/Javascript 代码。它基本上代表了一个有两个字段的网站:a) name="N":你标记 "V" 字母的字段; b) name="ID" 您输入的是最多 8 个字符的数字。

<tr>
    <td>
        <form name="form" method="post" action="javascript:BuscaR(document.form.N.value, document.form.ID.value)">
<table class="aux">
    <tr>
        <td>
            <select name="N" class="form">
            <option value="V">V</option>
            </select>
        </td>
        <td>
            <input name="ID" type="text" class="form"  maxlength="8" size="8" value="ID" onfocus="javascript:clear_textbox3();" onblur="javascript:Valid(document.form.ID);"/>
        </td>
    </tr>
    <tr>
        <td>
            <input type="submit" value="Buscar" class="boton"/>
        </td>
    </tr>
    </table>
    </form>
</td>

我以前用BeautifulSoup和urllib做过webscrapers。我的想法是制作一个脚本,输入并提交这些 ID 号(来自一个巨大的数据库),并检索网站响应的数据(它 returns a HTML)。

但是,我找不到这个表格 "leads" 到哪里去了。我的意思是,我该如何输入?我如何 "press" 在 Python 中提交?

在大多数 posts 上,我们现在 php URL 正在提交表单线索。因此他们可以更改 php.?N=V,ID=x 和 "brute force" 不同编号中的 ID。但是我在网站上找不到这个url。我该怎么办?

原来的网站是http://www.cne.gob.ve/web/index.php,右边写着"Consulte sus Datos. Proceso de validación y exclusión de registros presentados por el partido MUD.",方框里有一个搜索按钮。

谢谢大家!

这是一个简单的get请求,传递两个参数:

因此请求:

url = "http://www.cne.gob.ve/web/registro_electoral/firmantes.php"

params = {"nacionalidad":"V",
"cedula":"12345678"}

page = requests.get(url, params=params)
print(page.content)

如果您传递正确的 ID,您将获得 table 的返回数据,使用 12345678 您会看到 table 返回并且 Esta Cédula de Identidad no se encuentra en la base de datos de los registros presentados por el partido MUD 因为显然它不是有效的 ID。