【问题标题】:Basic Python webscrape script基本的 Python 网页爬虫脚本
【发布时间】:2018-10-03 19:00:02
【问题描述】:

这是我第一次尝试 Python 网页抓取。

我有一个 IP 摄像机,它通过 HTTP 将其所有文件保存到 HTML 文档中。本质上,摄像机是它自己的服务器,可以通过 HTTP 访问。服务器中的 HTML 非常基础。它只包含一个主体标签,其中包含此主体标签内的所有剪辑。文件如下所示:

MP_2018-04-23_11-14-04_60.mov 

我想列出/打印这些文件,但不包含与之关联的所有其他 HTML。

import bs4 as bs
import urlib.request
sauce = urllib.request.urlopen('http://192.168.1.99/form/getStorageFileList').read()
soup = bs.BeautifulSoup(sauce,'lxml')
body = soup.body
for paragraph in body.find_all('b'):
print(body.text)

我在下面提供了一些屏幕截图,因为我收到的错误很长。我基本上得到了:

属性错误:模块“html5lib.treebuilders”没有属性“_base”

有人能澄清一下并可能指出我正确的方向吗?

usr/lib/python3/dist-packages/bs4/builder/_html5lib.py in <module>()
     68 
     69 
---> 70 class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
     71 
     72     def __init__(self, soup, namespaceHTMLElements):

AttributeError: module 'html5lib.treebuilders' has no attribute '_base'

CameraHTML

Jupyterscript JupyterscriptOutput

【问题讨论】:

  • 已修复*对此感到抱歉。

标签: python html web-scraping html-parsing jupyter-notebook


【解决方案1】:

您的脚本中有一些错误。不过没什么大不了的。此外,您可能会从使用 Requests 库中获得更多好处。这样的事情怎么办?

from bs4 import BeautifulSoup as bs
import requests

sauce = requests.get('http://192.168.1.99/form/getStorageFileList')
page = sauce.text  #Converted page to text
soup = bs(page,'html.parser')  #Changed to 'html.parser'
body = soup.body('body')  #Added the 'body' tag
for paragraph in body.find_all('b'):
    print(paragraph.text)  #Grabbed the iterated items & converted them to text

如果这是您要找的东西,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多