Поместите следующий скрипт в папку и запустите его. Обязательно настройте эту часть [:2]
в соответствии с вашими потребностями, поскольку я определил ее как тест:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
url = 'http://web.mta.info/developers/turnstile.html'
base = 'http://web.mta.info/developers/'
response = requests.get(url)
soup = BeautifulSoup(response.text,'html.parser')
for tag in soup.select('a[href^="data/nyct/"]')[:2]:
filename = tag['href'].split("_")[1]
with open(filename,"wb") as f:
f.write(requests.get(urljoin(base,tag['href'])).content)
Если вы хотите придерживаться .find_all()
, это то, что вы можете сделать для достижения то же самое:
for onetag in soup.find_all('a',href=True):
if not onetag['href'].startswith('data/nyct/'):continue
link = urljoin(base,onetag['href'])
print(link)
Или вот так:
for onetag in soup.find_all('a',href=lambda e: e and e.startswith("data/nyct/")):
link = urljoin(base,onetag['href'])
print(link)