【问题标题】:Download HTML data without importing module in Python?无需在 Python 中导入模块即可下载 HTML 数据?
【发布时间】:2018-02-09 16:58:53
【问题描述】:

我正在使用buildozer 工具,因此默认情况下无法使用requestsurlliburllib2urllib3。他们需要手动创建 C 配方才能使用 buildozer。我对C一无所知,所以不太可能。

使用 Python,是否有任何方法可以将 html 数据从 url 下载到变量而不需要导入任何模块? 我不介意它是否是上述模块所需的更长的过程,因为我别无选择,哈哈

【问题讨论】:

  • buildozer 文档 (buildozer.readthedocs.io/en/latest/specifications.html) 提到您可以指定纯 Python 包的需求。 requirements = requests
  • @mattdonders 不幸的是,对于 Python3,使用 python3crystax ndk 它不起作用。这已得到多个用户的确认

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


【解决方案1】:

urllib 是一个原生库,并且似乎 buildozer 有(错误的)支持。

更多信息请访问 buildozer 页面上的this bug report

【讨论】:

    【解决方案2】:

    您可以使用套接字:

    import socket
    class WebData:
      def __init__(self, url):
         self.url = url
      @property
      def page_data(self):
         return self.webpage_data
      def __enter__(self):
         self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         self.s.connect((self.url , 80))
         self.s.sendall("GET http://{} HTTP/1.0\n\n".format(self.url))
         self.webpage_data = self.s.recv(4096)
         return self
      def __exit__(self, *args):
         self.s.close()
    
    with WebData('www.python.org') as f:
       print(f.page_data)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 2013-09-09
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      相关资源
      最近更新 更多