Python RoboBrowser - 如何从此页面获取内容

时间:2015-08-19 21:01:41

标签: python parsing python-3.x robobrowser

我试图在页面http://pretraga2.apr.gov.rs/ObjedinjenePretrage/Search/Search

上提交表单

然而我收到错误(HTML)如:

#!/usr/bin/python
# vim: set fileencoding=utf-8 :
import win_unicode_console

win_unicode_console.enable()

import requests
from bs4 import BeautifulSoup

import urllib.parse
import re
from robobrowser import RoboBrowser

# import warnings
# warnings.filterwarnings("ignore")

# Browse to Genius
browser = RoboBrowser(history=True)
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
       'Accept-Encoding': 'none',
       'Accept-Language': 'en-US,en;q=0.8',
       'Connection': 'keep-alive'}
s = requests.Session()
s.headers = hdr
browser = RoboBrowser(session=s)
browser.open('http://pretraga2.apr.gov.rs/ObjedinjenePretrage/Search/Search')
#
form = browser.get_form(action='/ObjedinjenePretrage/Search/SearchResult')
form['SearchByRegistryCodeString'].value = '53254136'
browser.submit_form(form)

print(browser.parsed)

当前的Python脚本:

brands

我试图添加标题,但没有运气。  还有什么可能是问题?

1 个答案:

答案 0 :(得分:1)

现在已经解决了。 我注意到页面上有两个名称相同的表单。我认为第一个(由display:none隐藏)作为蜜罐提交。

无论如何,解决方案是:

form = browser.get_forma(action='/ObjedinjenePretrage/Search/SearchResult')[1]