在不导入Python模块的情况下下载HTML数据?

时间:2018-02-09 16:58:54

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

我正在使用// location of directory $directoryPath = 'DIRECTORY_PATH'; // Listing Folders $foldersPath = array_diff(scandir($directoryPath), array('..', '.')); // Reading the files of each folder foreach($foldersPath as $folderPath){ $folderPath = $directoryPath.$folderPath."\\"; // check if the directory exist if(is_dir($folderPath)){ if($folder = opendir($folderPath)){ while(($fileName = readdir($folder)) !== false){ if($fileName === '.' || $fileName === '..'){ continue; } $filePath = $folderPath.$fileName; // Reading the contents from the file $content = file_get_contents($filePath); } } } } 工具,因此默认情况下无法使用buildozerrequestsurlliburllib2。他们需要手动创建C配方才能使用urllib3。我不了解C,所以不太可能。

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

2 个答案:

答案 0 :(得分:1)

urllib是一个本地库,看起来buildozer有(错误)支持。

有关详细信息,请参阅构建器页面上的this bug report

答案 1 :(得分:0)

您可以使用套接字:

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)