计划是这样的:
我下载一个网页,收集在DOM中解析的图像列表,然后下载这些图像.在此之后,我将遍历图像,以评估哪个图像最适合代表网页.
问题是图像是逐个下载的,这可能需要相当长的时间.
如果有人能指出我关于这个话题的某个方向,那将是很棒的.
非常感谢帮助.
我正在使用Python编程软件以从数据库下载HTTP PDF.有时下载会停止并显示以下消息:
retrieval incomplete: got only 3617232 out of 10689634 bytes
Run Code Online (Sandbox Code Playgroud)
如何让下载重新启动,停止使用206 Partial ContentHTTP功能?
我可以使用它wget -c并且它工作得很好,但我想直接在我的Python软件中实现它.
任何的想法 ?
谢谢
我想在一个站点批量下载网页.我的'urls.txt'文件中有5000000个网址链接.这大约是300M.如何使多线程链接这些网址并下载这些网页?或批量如何下载这些网页?
我的想法:
with open('urls.txt','r') as f:
for el in f:
##fetch these urls
Run Code Online (Sandbox Code Playgroud)
或扭曲?
它有一个很好的解决方案吗?
我想在Python中编写一个脚本,可以从数据库中获取URL,并同时下载网页以加快速度,而不是等待每个页面一个接一个地下载.
根据这个线程,Python不允许这样做,因为有一个名为Global Interpreter Lock的东西会阻止多次激活相同的脚本.
在花时间学习Twisted框架之前,我想确保没有更简单的方法来完成我需要做的事情.
谢谢你的任何提示.
我正在尝试编写我的第一个Python脚本,并且使用了大量的Google搜索,我认为我已经完成了.但是,我需要一些帮助才能让自己走完终点.
我需要编写一个脚本,登录到启用cookie的站点,刮掉一堆链接,然后生成一些进程来下载文件.我有程序在单线程中运行,所以我知道代码工作.但是,当我试图创建一个下载工作池时,我碰到了一堵墙.
#manager.py
import Fetch # the module name where worker lives
from multiprocessing import pool
def FetchReports(links,Username,Password,VendorID):
pool = multiprocessing.Pool(processes=4, initializer=Fetch._ProcessStart, initargs=(SiteBase,DataPath,Username,Password,VendorID,))
pool.map(Fetch.DownloadJob,links)
pool.close()
pool.join()
#worker.py
import mechanize
import atexit
def _ProcessStart(_SiteBase,_DataPath,User,Password,VendorID):
Login(User,Password)
global SiteBase
SiteBase = _SiteBase
global DataPath
DataPath = _DataPath
atexit.register(Logout)
def DownloadJob(link):
mechanize.urlretrieve(mechanize.urljoin(SiteBase, link),filename=DataPath+'\\'+filename,data=data)
return True
Run Code Online (Sandbox Code Playgroud)
在此修订版中,代码失败,因为cookie尚未传输给工作者以供urlretrieve使用.没问题,我能够用机械化的.cookiejar类保存cookies在经理,并传递给工人.
#worker.py
import mechanize
import atexit
from multiprocessing import current_process
def _ProcessStart(_SiteBase,_DataPath,User,Password,VendorID):
global cookies
cookies = mechanize.LWPCookieJar()
opener = mechanize.build_opener(mechanize.HTTPCookieProcessor(cookies))
Login(User,Password,opener) # note I pass the opener to Login …Run Code Online (Sandbox Code Playgroud) python ×6
twisted ×2
urllib ×2
urllib2 ×2
concurrency ×1
cookies ×1
download ×1
html ×1
http ×1
web-crawler ×1
web-scraping ×1