当前位置: 首页 > 面试题库 >

仅使用python请求下载文档的一部分

漆雕洋
2023-03-14
问题内容

我正在使用python-requests编写网络抓取工具。

每个页面超过1MB,但是我需要提取的实际数据在文档流程中还很早,因此我浪费了时间来下载大量不必要的数据。

如果可能,我想在文件的源代码中出现所需数据后立即停止下载,以节省时间。

例如,我只想提取“ abc” Div中的文本,该文档的其余部分无用:

<html>
<head>
<title>My site</title>
</head>
<body>

<div id="abc">blah blah...</div>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris fermentum molestie ligula, a pharetra eros mollis ut.</p>
<p>Quisque auctor volutpat lobortis. Vestibulum pellentesque lacus sapien, quis vulputate enim mollis a. Vestibulum ultrices fermentum urna ac sodales.</p>
<p>Nunc sit amet augue at dolor fermentum ultrices. Curabitur faucibus porttitor vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Etiam sed leo at ipsum blandit dignissim ut a est.</p>

</body>
</html>

目前,我只是在做:

r = requests.get(URL)

问题答案:

您要在此处使用的称为RangeHTTP标头。

请参阅:http :
//www.w3.org/Protocols/rfc2616/rfc2616-sec14.html(
特别是Range上的位 )。

另请参阅自定义标题上的API文档

例:

from requests import get


url = "http://download.thinkbroadband.com/5MB.zip"
headers = {"Range": "bytes=0-100"}  # first 100 bytes

r = get(url, headers=headers)


 类似资料:
  • 问题内容: 这是我的代码: 这使我可以访问csv文件。我尝试了其他方法来处理下载: 这将给csv文件一个字符串: 这将打印第一行并返回错误:_csv.Error:在未引用的字段中看到换行符 这将在每行中打印一个字母,并且不会打印出整个内容: 我的问题是:在这种情况下读取CSV文件的最有效方法是什么。以及如何下载。 谢谢 问题答案: 这应该有助于: 输出样本: 答案相关的问题: 使用此功能将csv加

  • 问题内容: 请求是一个非常不错的库。我想用它来下载大文件。问题是不可能将整个文件保留在内存中,我需要分块读取它。这是以下代码的问题 由于某种原因,它无法按这种方式工作。仍将响应加载到内存中,然后再将其保存到文件中。 更新 如果你需要一个小型客户端,可以从FTP下载大文件,则可以在此处找到它。它支持多线程和重新连接(它确实监视连接),还可以为下载任务调整套接字参数。 问题答案: 使用以下流代码,无论

  • 问题内容: 我想在单击按钮时发送“ ajax下载请求”,所以我尝试了这种方式: javascript: download.php: 但是没有按预期工作,我该怎么办?先感谢您 问题答案: 2015年4月27日更新 进入HTML5场景的是download属性。它支持在Firefox和Chrome,并很快来到IE11。根据您的需求,只要您要下载的文件与您的网站位于同一来源,就可以使用它代替AJAX请求(

  • 问题内容: 当我单击按钮时,我想发送“ ajax下载请求”,因此我尝试了这种方式: javascript: download.php: 但是没有按预期工作,我该怎么办?先感谢您 问题答案: 进入HTML5场景的是download属性。它支持在Firefox和Chrome,并很快来到IE11。根据您的需求,只要您要下载的文件与您的网站位于同一来源,就可以使用它代替AJAX请求(或使用)。 您始终可以

  • 我有一些python代码,它使用请求成功地从URL下载图像,并将其保存到中。我想测试一下,它应该做什么。我使用响应来测试JSON文件的获取,但我不确定如何模拟获取文件的行为。 我假设这类似于嘲笑一个标准的响应,就像下面一样,但是我想我忽略了如何将设置为文件... 更新:在Ashafix的评论之后,我正在尝试这个(python 3): 但随后,当我正在测试的代码尝试执行我得到的请求时: 感觉几乎是对

  • 问题内容: 我正在尝试使用的模块从网络下载并保存图像。 这是我使用的(工作)代码: 你能帮助我从响应中使用什么属性吗? 问题答案: 你可以使用对象,也可以遍历响应。 默认情况下,使用类似文件的对象不会解码压缩的响应(使用GZIP或deflate)。你可以通过将属性设置为True(requests将其设置False为控制自身解码)来强制为你解压缩。然后,你可以使用将数据流式传输到文件对象: 要遍历响