2016-08-24 30 views
-1

我使用Python的请求库打开了一个网页('http://example.com/protected_page.php')。使用Python打开网页后下载文件

from requests import session 

payload = { 
    'action': 'login', 
    'username': USERNAME, 
    'password': PASSWORD 
} 

with session() as c: 
    c.post('http://example.com/login.php', data=payload) 
    response = c.get('http://example.com/protected_page.php') 

现在,该页面上有大约15个链接用于下载文件。

我希望只从2个链接下载文件(比如linkA和linkB)。

如何在我的代码中指定此值,以便在运行我的代码时下载2个文件。

+0

哪里是你的代码来获取页面?没有看到你正试图刮你的问题的页面是无法回答的 –

+0

为什么你需要代码?这只是打开需要的页面。 – Aditya

+0

我添加了相关代码 – Aditya

回答

0

您能否提供关于这些链接的更多信息?

这些linkA和linkB总是一样的链接吗? 如果是的话,那么你可以使用:

r = requests.get(linkA, stream=True) 

如果网址链接是不一样的时候,那么也许你可以找到另一种方式,使用链接的顺序可以是,例如,如果林卡和LINKB始终是页面上的第一个和第二个链接等。

另一种方法是使用页面中的任何唯一类名称或ID。但是如果你能提供更多的信息会更好。

+0

实际上,该网页有15个不同的标题(例如“H1”,“H2”,...,“H15”)。所以,标题名称每天都是一样的。但是,当我们点击任何标题名称(比如“H1”)时,链接名称(以及由此下载的文件)会发生变化。 – Aditya

+0

所以,我需要一些python代码,我可以提到2个标题,我每天点击下载文件 – Aditya

+0

这是一个很好的开始。检查页面,看看标题是否与链接以某种方式链接。然后,您可以使用另一个类似BeatifulSoup4的库来获取这些链接并将它们传递给请求。 – efialtisgr

0

事实上你所提到的更精确地称为网络报废,其中一个可以刮从给定网站的一些具体内容:

网页抓取是从提取 信息的计算机软件技术网站。该技术主要关注网络中非结构化数据(HTML格式)的 结构化数据(数据库或电子表格)。

不知道HTML语义,它是不可能给你一个代码,你正在寻找什么。但在这里,我可以建议你使用哪种方式,你可以从你的网站进行网页抓取。

1.非编程方式:

对于那些你,谁需要一个非编程的方式来提取 信息出来的网页,你也可以看看import.io。它提供了一个GUI驱动的界面来执行所有基本的Web抓取操作。

2.编程方式:

您可能会发现许多图书馆使用Python来执行一个功能。因此,有必要找到最好的使用库。我更喜欢BeautifulSoup,因为它很容易和直观。确切地说,可以使用刮数据两个Python模块:

  • 的urllib2:它是一个Python模块,其可用于获取的URL。它定义了用于帮助URL操作的函数和类(基本的 和摘要式验证,重定向,cookie等)。有关更多 的详细信息,请参阅文档页面。


  • BeautifulSoup:这是从网页拉出信息 一个不可思议的工具。您可以使用它来提取表格,列表,段落和 ,您还可以将过滤器从网页中提取信息。最新版本为BeautifulSoup 4.您可以在文档页面的安装说明中查看 。

BeautifulSoup没有为我们抓取的网页。这就是为什么,需要结合使用urllib2与BeautifulSoup库。

除了BeatifulSoup外,Python还有其他几种HTML抓取选项。下面是一些人: