首页 > 解决方案 > 学习 Python 从网站中提取数据

问题描述

我正在尝试编写一个脚本来从导出到 Excel 的内部网站获取数据,该数据被分成更小的部分并通过电子邮件发送给技术人员。(指标数据)我正在尝试使用 robobrowser 进入网站,但我不断收到以下信息:

C:\Users\user\AppData\Local\Programs\Python\Python36-32\Aging.py Traceback(最近一次调用最后):

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\Aging.py”,第 3 行,从 robobrowser 导入 RoboBrowser

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\robobrowser-0.5.3-py3.6.egg\robobrowser__init__.py”,第 3 行,来自 .浏览器导入 RoboBrowser

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\robobrowser-0.5.3-py3.6.egg\robobrowser\browser.py”,第 7 行,在从 bs4 导入 BeautifulSoup

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bs4__init__.py”,第 30 行,从 .builder 导入 builder_registry,ParserRejectedMarkup

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bs4\builder__init__.py”,第 308 行,来自 . 导入 _htmlparser

文件“C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bs4\builder_htmlparser.py”,第 7 行,从 html.parser 导入(ImportError: cannot import name ' HTMLParseError'

这是代码:

import webbrowser
import re
from robobrowser import RoboBrowser

#Set BR module
br = RoboBrowser()

#open a website
br.open("https://www.whatever.com")

form = br.get_form()
form ['username'] = "username"
form ['password'] = "password"
br.submit_form(form)

任何帮助,将不胜感激。

标签: python-3.x

解决方案


您应该尝试重新安装 RoboBrowser 和 BeautifulSoup。发生的事情是,当你 时import robobrowser,RoboBrowser 然后尝试import BeautifulSoup(一个 python 模块),然后尝试import _htmlparser(一个作为 BeautifulSoup 包的一部分的 python 模块),但它找不到该文件并且加载失败。

这很可能是由丢失或损坏的文件(或者可能是过时的版本)引起的。如果您重新安装BeautifulSoup(并且可能是robobrowser为了安全起见),它应该可以解决问题。


推荐阅读