使用 beautifulsoup 将文件下载到 google 驱动器

Downloading files to google drive using beautifulsoup

我需要使用 colaboratory beautifulsoup 将文件下载到我的 google 驱动器。

我正在使用以下代码:

u = urllib.request.urlopen("https://s3.amazonaws.com/video.udacity-data.com/topher/2018/November/5bf32290_turnstile/turnstile.html")
html = u.read()

soup = BeautifulSoup(html, "html.parser")
links = soup.find_all('a')

我只需要名称包含“1706”的链接。所以,我正在尝试:

for link in links:
  files = link.get('href')
  if '1706' in files: 
    urllib.request.urlretrieve(filelink, filename)

而且没有用。 "TypeError: argument of type 'NoneType' is not iterable"。好的,我知道为什么会出现此错误,但我不知道如何解决,缺少什么。

使用这个

urllib.request.urlretrieve("https://s3.amazonaws.com/video.udacity-data.com/topher/2018/November/5bf32142_turnstile-170624/turnstile-170624.txt", 'turnstile-170624.txt')

我可以获取单个文件。但我想要一些方法来下载所有文件(包含“1706”)并将这些文件保存到我的 google 驱动器。

我该怎么做?

您可以使用带有 * contains 运算符的 attribute = value css 选择器来指定 href 属性值包含 1706

links = [item['href'] for item in soup.select("[href*='1706']")]

变化自

soup.find_all('a')

改成这个

soup.select('a[href]')

它将select只有一个具有 href 属性的标签。