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

使用Python在网页上下载所有链接(相关文档)

岳刚洁
2023-03-14
问题内容

我必须从网页上下载很多文档。它们是wmv文件,PDF,BMP等。当然,它们都具有指向它们的链接。因此,每次我必须RMC一个文件,选择“链接另存为”,然后保存,然后键入“所有文件”。是否可以在Python中执行此操作?我搜索了SO
DB,人们回答了如何从网页获取链接的问题。我想下载实际文件。提前致谢。(这不是硬件问题:))。


问题答案:

这是如何从http://pypi.python.org/pypi/xlwt下载一些选定文件的示例

您将需要先安装机械化:http :
//wwwsearch.sourceforge.net/mechanize/download.html

    import mechanize
    from time import sleep
    #Make a Browser (think of this as chrome or firefox etc)
    br = mechanize.Browser()

    #visit http://stockrt.github.com/p/emulating-a-browser-in-python-with-mechanize/
    #for more ways to set up your br browser object e.g. so it look like mozilla
    #and if you need to fill out forms with passwords.

    # Open your site
    br.open('http://pypi.python.org/pypi/xlwt')

    f=open("source.html","w")
    f.write(br.response().read()) #can be helpful for debugging maybe

    filetypes=[".zip",".exe",".tar.gz"] #you will need to do some kind of pattern matching on your files
    myfiles=[]
    for l in br.links(): #you can also iterate through br.forms() to print forms on the page!
        for t in filetypes:
            if t in str(l): #check if this link has the file extension we want (you may choose to use reg expressions or something)
                myfiles.append(l)


    def downloadlink(l):
        f=open(l.text,"w") #perhaps you should open in a better way & ensure that file doesn't already exist.
        br.click_link(l)
        f.write(br.response().read())
        print l.text," has been downloaded"
        #br.back()

    for l in myfiles:
        sleep(1) #throttle so you dont hammer the site
        downloadlink(l)

注意:在某些情况下,您可能希望替换br.click_link(l)br.follow_link(l)。区别在于click_link返回一个Request对象,而follow_link将直接打开该链接。



 类似资料:
  • 本文向大家介绍python获取指定网页上所有超链接的方法,包括了python获取指定网页上所有超链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python获取指定网页上所有超链接的方法。分享给大家供大家参考。具体如下: 这段python代码通过urllib2抓取网页,然后通过简单的正则表达式分析网页上的全部url地址 希望本文所述对大家的python程序设计有所帮助。

  • 本文向大家介绍php获取网页上所有链接的方法,包括了php获取网页上所有链接的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php取得网页上所有链接的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 我正在创建一个程序,通过读取同一游戏/应用程序的.jad文件中指定的URL,该程序将从Web服务器下载.jar(java)文件。我正在使用Python 3.2.1 我设法从JAD文件中提取JAR文件的URL(每个JAD文件都包含指向JAR文件的URL),但是正如您所想象的,提取的值是type()字符串。 相关功能如下: 但是,我总是得到一个错误,指出上面函数中的类型必须是字节,而不是字

  • 当我运行此代码时,会出现以下错误:- 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 我也尝试了含蓄的等待,但得到了同样的问题。

  • 问题内容: 这是此网页中的链接 https://www.shareinvestor.com/prices/price_download.html#/?type=price_download_all_stocks_bursa。 然后将其保存到此目录”/home/vinvin/shKLSE/(我正在使用 pythonaywhere)。然后将其解压缩,然后将csv文件解压缩到目录中。 该代码一直运行到最

  • 我正在实现一个网络爬虫,我正在使用Crawler4j库。我不是得到一个网站上的所有链接。我试图使用Crawler4j提取一个页面上的所有链接,但遗漏了一些链接。 这是页面上的URL列表,这是Crawler4J给出的URL列表。 我查看了crawler4j使用的'HTMLContentHandler.java'文件来提取链接。在此,仅提取与“src”和“href”链接相关联的链接。 我发现这些文件的