我使用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个文件。
答案 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抓取选项。以下是其他一些内容: