Я целый день пытался скачать некоторые CSV-файлы, но безуспешно.У меня есть список URL-адресов, которые я бы хотел, чтобы мой скрипт посетил, затем извлеките атрибут href из проверки некоторых якорей на соответствие определенному шаблону регулярных выражений и загрузите их в папку "example.com/*.csv"
Я использую macOs, python 3.7.2, я пробовал это только на этом компьютере, но как только я заставлю это работать, я планирую перенести это на машину linux.Я начал с селена и geckodriver, а потом обнаружил, что он мне действительно не нужен, и мог сделать это с помощью запросов BeautifulSoup +.
Как я уже сказал, я модифицировал его весь день, безповезло, это окончательная версия, взятая из другой ветки отсюда:
import requests
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen
_URL = 'http://example.com/words'
_URLD = str(_URL.strip('words'))
# functional
r = requests.get(_URL)
soup = bs(r.text)
urls = []
names = []
for i, link in enumerate(soup.findAll('a')):
_FULLURL = _URLD + link.get('href')
if _FULLURL.endswith('.csv'):
urls.append(_FULLURL)
names.append(soup.select('a')[i].attrs['href'])
print(_FULLURL)
requests.get(_FULLURL)
Имея то, что у меня есть сейчас, я вижу, что консоль печатает все URL, но не может понять, кудадобавьте шаблон регулярных выражений, чтобы можно было загружать только URL-адреса со следующим шаблоном.
linkRegex = re.compile(r'/name-[0-9]+-[0-9]+-[0-9]+-[0-9]+.csv')
А затем фактически записать файлы csv в 'example.com/*.csv'