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

时间:2019-04-17 17:12:56

标签: html web-scraping beautifulsoup google-colaboratory flysystem-google-drive

我需要使用colaboratory使用beautifulsoup将文件下载到我的googledrive中。

我正在使用以下代码:

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:'NoneType'类型的参数不可迭代”。好的,我知道为什么会出现此错误,但是我不知道如何解决,缺少了什么。

使用此

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驱动器中。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以将attribute = value css选择器与* contains运算符一起使用,以指定href属性值包含1706

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

答案 1 :(得分:0)

更改自

soup.find_all('a')

为此

soup.select('a[href]')

它将仅选择具有href属性的标签。