在Python,有什么之间的差异urllib,urllib2以及urllib3模块?为什么有三个?他们似乎做同样的事情......
我正在创建一个程序,它将从Web服务器下载.jar(java)文件,方法是读取同一游戏/应用程序的.jad文件中指定的URL.我正在使用Python 3.2.1
我设法从JAD文件中提取JAR文件的URL(每个JAD文件都包含JAR文件的URL),但是您可以想象,提取的值是type()字符串.
这是相关的功能:
def downloadFile(URL=None):
import httplib2
h = httplib2.Http(".cache")
resp, content = h.request(URL, "GET")
return content
downloadFile(URL_from_file)
Run Code Online (Sandbox Code Playgroud)
但是我总是得到一个错误,说上面函数中的类型必须是字节,而不是字符串.我尝试过使用URL.encode('utf-8'),还有字节(URL,encoding ='utf-8'),但我总是得到相同或类似的错误.
所以基本上我的问题是当URL存储在字符串类型中时如何从服务器下载文件?
我是Python的新手,我一直在浏览本网站上的问答,以回答我的问题.但是,我是初学者,我发现很难理解一些解决方案.我需要一个非常基本的解决方案
有人可以向我解释一个简单的解决方案:"通过http下载文件"和"将其保存到Windows中的磁盘"吗?
我也不确定如何使用shutil和os模块.
我想下载的文件不到500 MB,是一个.gz存档文件.如果有人可以解释如何提取存档并利用其中的文件,那就太棒了!
这是一个部分解决方案,我从各种答案中总结出来:
import requests
import os
import shutil
global dump
def download_file():
global dump
url = "http://randomsite.com/file.gz"
file = requests.get(url, stream=True)
dump = file.raw
def save_file():
global dump
location = os.path.abspath("D:\folder\file.gz")
with open("file.gz", 'wb') as location:
shutil.copyfileobj(dump, location)
del dump
Run Code Online (Sandbox Code Playgroud)
有人可以指出错误(初学者级别)并解释任何更简单的方法来做到这一点?
谢谢!
我知道Internet上图像的URL.
例如http://www.digimouth.com/news/media/2011/09/google-logo.jpg,其中包含Google的徽标.
现在,如何使用Python下载此图像,而无需在浏览器中实际打开URL并手动保存文件.
我写一个小程序下载文件通过HTTP(如,例如,描述在这里).
我还想包含一个小的下载进度指示器,显示下载进度的百分比.
这是我想出的:
sys.stdout.write(rem_file + "...")
urllib.urlretrieve(rem_file, loc_file, reporthook=dlProgress)
def dlProgress(count, blockSize, totalSize):
percent = int(count*blockSize*100/totalSize)
sys.stdout.write("%2d%%" % percent)
sys.stdout.write("\b\b\b")
sys.stdout.flush()
输出:MyFileName ... 9%
还有其他想法或建议吗?
有点烦人的是在百分比的第一位数字中终端闪烁的光标.有办法防止这种情况吗?有没有办法隐藏光标?
编辑:
这里有一个更好的替代方法,在dlProgress和'\ r'代码中使用全局变量作为文件名:
global rem_file # global variable to be used in dlProgress
urllib.urlretrieve(rem_file, loc_file, reporthook=dlProgress)
def dlProgress(count, blockSize, totalSize):
percent = int(count*blockSize*100/totalSize)
sys.stdout.write("\r" + rem_file + "...%d%%" % percent)
sys.stdout.flush()
输出:MyFileName ... 9%
并且光标显示在行的END处.好多了.
我是selenium的新手,我正在编写一个刮刀,可以从给定的站点自动下载pdf文件.
以下是我的代码:
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2);
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "/home/jill/Downloads/Dinamalar")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://epaper.dinamalar.com/PUBLICATIONS/DM/MADHURAI/2015/05/26/PagePrint//26_05_2015_001_b2b69fda315301809dda359a6d3d9689.pdf");
webobj = browser.find_element_by_id("download").click();
Run Code Online (Sandbox Code Playgroud)
我按照Selenium 文档和此链接中提到的步骤进行操作.我不确定为什么每次都会显示下载对话框.
有没有办法解决它,否则有一种方法可以提供"应用程序/所有",以便可以下载所有文件(解决方法)?
我试图看看HTML5应用程序是如何工作的,任何在webkit浏览器中保存页面的尝试(chrome,Safari)都包含一些但不是所有的cache.manifest资源.是否有一个库或一组代码将解析cache.manifest文件,并下载所有资源(图像,脚本,CSS)?
(原始代码移动回答... noob错误>.<)
我正在寻找一种在 python 中下载 pdf 文件的方法,并且我看到了推荐 urllib 模块的其他问题的答案。我尝试使用它下载 pdf 文件,但是当我尝试打开下载的文件时,会显示一条消息,提示无法打开该文件。
这是我使用的代码-
import urllib
urllib.urlretrieve("http://papers.gceguide.com/A%20Levels/Mathematics%20(9709)/9709_s11_qp_42.pdf", "9709_s11_qp_42.pdf")
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?此外,该文件会自动保存到我的 python 文件所在的目录中。如何更改保存它的位置?
编辑 - 我再次尝试使用示例 pdf 的链接,http://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf
该代码正在使用此链接,那么为什么它不适用于另一个链接呢?
我对 Python 完全陌生,我想通过向服务器发送请求来下载文件。当我在浏览器中输入它时,我看到 CSV 文件已下载,但是当我尝试发送 get 请求时,它没有返回任何内容。例如:
import urllib2
response = urllib2.urlopen('https://publicwww.com/websites/%22google.com%22/?export=csv')
data = response.read()
print 'data: ', data
Run Code Online (Sandbox Code Playgroud)
它没有显示任何内容,我该如何处理?当我在网上搜索时,所有的问题都是关于如何发送一个 get 请求。我可以发送 get 请求,但我不知道如何下载文件,因为它不在请求的响应中。
我不知道如何找到解决方案。
我必须打印到PDF的离散数量的python脚本.代码应该作为文本而不是图像包含在内,因为它必须通过反抄袭机制进行检查(我不需要处理这个问题,只是要求pdf不是由图像制作的,而是全部).语法高亮也是必要的.
您对此特定工具有任何建议吗?
python ×10
download ×3
pdf ×2
web-scraping ×2
file ×1
get ×1
html5 ×1
http ×1
parsing ×1
printing ×1
python-2.7 ×1
python-2.x ×1
python-3.x ×1
save ×1
selenium ×1
urllib ×1
urllib2 ×1
web-crawler ×1