Как извлечь ВСЕ hrefs с веб-страницы USDA_AMS, используя Python - PullRequest
1 голос
/ 15 апреля 2020

Я пытаюсь извлечь некоторые 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. Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...