使用Python

时间:2016-08-24 08:18:14

标签: python web-scraping

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

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个文件。

2 个答案:

答案 0 :(得分:0)

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

这些linkA和linkB是否始终是相同的链接? 如果是,那么您可以使用:

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

如果url链接不是一直相同,那么也许你可以找到另一种方式,使用链接的顺序,例如,如果linkA和linkB始终是页面上的第一个和第二个链接等

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

答案 1 :(得分:0)

事实上,您所指的更准确地称为网络报废,其中可以从指定的网站中删除某些特定内容:

  

Web抓取是一种提取的计算机软件技术   来自网站的信息。这项技术主要集中在   将Web上的非结构化数据(HTML格式)转换为   结构化数据(数据库或电子表格)。

在不知道HTML语义的情况下,无法为您提供所需的代码。但在这里,我可以建议您使用哪些方法从网站上进行网页搜索。

<强> 1。非编程方式:

  

对于那些需要非编程方式来提取的人   从网页中获取信息,您还可以查看import.io。它   提供GUI驱动的界面来执行所有基本的Web抓取   操作

<强> 2。程序员方式:

您可能会发现许多库使用python执行一个函数。因此,有必要找到最好用的库。我更喜欢BeautifulSoup,因为它易于直观地工作。确切地说,您使用两个Python模块来抓取数据:

  •   

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


  •   

    BeautifulSoup:这是一个用于提取信息的令人难以置信的工具   来自网页。您可以使用它来提取表,列表,段落和   您还可以使用过滤器从网页中提取信息。最新版本是BeautifulSoup 4.你可以看看   在其文档页面的安装说明中。

BeautifulSoup不会为我们提取网页。这就是为什么,需要将urllib2与BeautifulSoup库结合使用。

除了BeatifulSoup之外,Python还有其他几种HTML抓取选项。以下是其他一些内容: