【问题标题】:Script that uses parameters and reads results使用参数并读取结果的脚本
【发布时间】:2018-01-07 08:00:23
【问题描述】:

我正在尝试编写一个脚本,该脚本接收具有某些参数的 URL,从生成的网页中读取新 URL 列表,然后在本地下载它们。我对编程很陌生,从未使用过 Python 3,所以我有点迷茫。

这里是进一步解释的示例代码:

param1 = 
param2 = 
param3 = 

requestURL = "http://examplewebpage.com/live2/?target=param1&query=param2&other=param3"

html_content = urllib2.urlopen(requestURL).read()

#I don't know where to go from here
#Something that can find when a URL appears on the page and append it to a list 
#Then download everything from that list

#this can download something from a link:
#file = urllib.URLopener()
#file.retrieve(url, newfilelocation)

request-URL 的输出是一个很长的页面,可以是 XML 或 JSON,并且有很多不一定需要的信息,因此需要某种形式的搜索来找到以后需要下载的 URL .在页面上找到的 URL 直接指向所需的文件(它们以 .jpg、.cat 等结尾)。

如果您需要任何其他信息,请告诉我!如果这令人困惑,我深表歉意。

另外,理想情况下,我会将下载的文件全部转到为它们创建的新文件夹(子目录),文件名是当前日期和时间,但我想我可以自己解决这部分问题。

【问题讨论】:

  • 您是否尝试解析 HTML 页面以获取指向其他 HTML 页面的所有链接,并下载这些其他页面?
  • 对不起,应该已经解释过了,但是链接直接指向需要下载的文件。 (它们以 .jpg、.cat 等结尾)。现在编辑问题。

标签: python url download


【解决方案1】:

您似乎正在尝试构建类似于网络爬虫的东西,除非您想呈现内容。您应该探索scrapy 的源代码,这将有助于理解其他人是如何编写类似逻辑的。我建议使用requests 库而不是 urllib,因为它更容易。 python库内置htmlJsonXML解析器。

如果页面类型未知,您应该检查内容类型标头以了解您尝试下载的内容类型。可以有替代策略,scrapy应该会给你更多的想法。

希望这会有所帮助。

【讨论】:

  • 等等,你的意思是使用scrapy吗?或者只是作为灵感?我缺乏编码经验,因此很难理解其中的一些内容。
  • 我知道您是 python 新手,但是,如果您想构建一些东西,您可以从人们在同一领域所做的事情中获得灵感。 RTFS(阅读友好来源)@moon17 是最好的方法之一。如果 Scrapy 看起来很复杂,还有其他类似 Spider github.com/buckyroberts/Spider
【解决方案2】:

我建议查看BeautifulSoup 以解析返回的页面。 有了它,你可以很容易地遍历链接并提取链接地址并将它们附加到链接列表中。

【讨论】:

  • 我调查过了,但 BeautifulSoup 不只是用于 XML 和 HTML 吗?它也必须在 JSON 上工作
  • 是的,抱歉,我认为 BeautifulSoup 不支持 JSON。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2016-05-29
  • 2015-02-27
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
相关资源
最近更新 更多