需要登录的Python网络抓取页面

时间:2019-10-01 14:52:19

标签: python python-3.x web-scraping

我正在尝试使用Python自动化Web数据收集过程。就我而言,我需要从https://app.ixml.com.br/documentos/nfe页中提取信息。但是,在转到此页面之前,您需要登录https://app.ixml.com/login。理论上,以下代码应登录该站点:

import re 
from robobrowser import RoboBrowser


username = 'email'
password = 'password'

br = RoboBrowser()

br.open('https://app.ixml.com.br/login')

form = br.get_form()

form['email'] = username
form['senha'] = password

br.submit_form(form)

src = str(br.parsed())

但是,通过打印src变量,我从https://app.ixml.com.br/login页面获取了源代码,即在登录之前。如果我在前一代码的末尾添加了以下几行

br.open('https://app.ixml.com.br/documentos/nfe')
src2 = str(br.parsed())

src2变量包含页面https://app.ixml.com.br/的源代码。我尝试了一些变体,例如创建一个新的br对象,但得到了相同的结果。如何访问https://app.ixml.com.br/documentos/nfe上的信息?

1 个答案:

答案 0 :(得分:0)

如果可以打开网页,则可以尝试使用selenium解决此问题。该程序包使创建一个程序的反应成为可能,就像用户一样。

以下代码可让您登录:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("https://app.ixml.com.br/login")
browser.find_element_by_id("email").send_keys("abc@mail")
browser.find_element_by_id("senha").send_keys("abc")
browser.find_element_by_css_selector("button").click()