27-第1步_设计程序
第1步:设计程序
打开一个浏览器的开发者工具,检查该页面上的元素,你会发现下面的内容。
- 漫画图像文件的URL,由一个
<img>
元素的href
属性给出。 <img>
元素在<div id="comic">
元素之内。- Prev按钮有一个
rel
HTML属性,值是prev
。 - 第一张漫画的Prev按钮链接到后缀为# URL的XKCD网址,表明没有前一个页面了。
让你的代码看起来像这样:
#! python3
# downloadXkcd.py - Downloads every single XKCD comic.
import requests, os, bs4
url = 'https://' # starting url
os.makedirs('xkcd', exist_ok=True) # store comics in ./xkcd
while not url.endswith('#'):
# TODO: Download the page.
# TODO: Find the URL of the comic image.
# TODO: Download the image.
# TODO: Save the image to ./xkcd.
# TODO: Get the Prev button's url.
print('Done.')
你会有一个 url
变量,开始的值是 'http://
'
,然后反复更新(在一个 for
循环中),变成当前页面的Prev链接的URL。在循环的每一步,你将下载URL上的漫画。如果URL以 '#'
结束,那么你就知道需要结束循环。
将图像文件下载到当前目录的一个名为 xkcd
的文件夹中。调用 os.makedirs()
函数以确保这个文件夹存在。如果文件夹已经存在,那么关键字参数 exist_ok=True
可用于防止该函数抛出异常。剩下的代码只是注释,只列出了剩下程序的大纲。