Я пытаюсь извлечь некоторые URL-адреса с веб-сайта USDA AMS, чтобы получить некоторые отчеты. Вот пример ссылки: AMS report_SlugID_3040 . Мне нужно, чтобы URL-адреса заканчивались на ".txt".
Вот код Python (Python3), который я использую:
Slug_ID = '3040'
url = 'https://mymarketnews.ams.usda.gov/viewReport/' + Slug_ID
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
html = urllib.request.urlopen(url, context=ctx).read()
txt_urls = re.findall(b'href="(http[s]?://mymarketnews.ams.usda.gov/.*?)"', html)
Он работал для нескольких других отчетов (разных идентификаторов слагов) пару недель go, но уже нет. Не знаю почему.
Также я попытался использовать красивые Soap, чтобы найти все ссылки на сайте.
web_r = requests.get(url)
tags = web_soup.findAll('a')
for tag in tags:
print(tag.get('href', None))
Получено обратно с 43 ссылками. Ни один из них не тот URL, который я ищу. Я знаю, что есть некоторые URL, которые мне нужны, когда я делаю «Осмотр». Например:
...
<ul class = "section-data-month">
<li>
MS_GR215, [04/07/2020], 04/07/2020 16:38:33, [
<a href="https://mymarketnews.ams.usda.gov/filerepo/sites/default/files/3040/2020-04-07/169146/ams_3040_00007_01.txt" target= "_blank">
<span class = "text-uppercase">TXT</span>
</a>]
</li>
<li>...</li>
</ul>
...
URL, которые мне нужны, выглядят так: "https://mymarketnews.ams.usda.gov/filerepo/sites/default/files/3040/2020-04-07/169146/ams_3040_00007_01.txt".
Кто-нибудь может мне помочь? Я действительно новый парень в Python. Большое спасибо!