我需要使用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驱动器中。
我该怎么做?
答案 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属性的标签。