Как я могу получить href ссылки из href, используя python / pandas - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно получить ссылки на href, которые есть в href (которые у меня уже есть). Поэтому мне нужно нажать на ссылки href и собрать другие ссылки.Я пробовал, но из этого кода получаю только первый href, хочу попасть в него и собрать href, который присутствует в предыдущем.так как я мог это сделать.Я пытался:

from bs4 import BeautifulSoup
import requests
url = 'https://www.iea.org/oilmarketreport/reports/'
page = requests.get(url)

soup = BeautifulSoup(page.text, 'html.parser')
#soup.prettify()
#table = soup.find("table")
#print(table)
links = []
for href in soup.find_all(class_='omrlist'):
    #print(href)
    links.append(href.find('a').get('href'))
print(links) 

1 Ответ

0 голосов
/ 13 ноября 2018

здесь, как сделать цикл для получения URL отчета

import requests

root_url = 'https://www.iea.org'

def getLinks(url):
    all_links = []
    page = requests.get(url)
    soup = BeautifulSoup(page.text, 'html.parser')
    for href in soup.find_all(class_='omrlist'):
        all_links.append(root_url + href.find('a').get('href'))  # add prefix 'http://....'
    return all_links

yearLinks = getLinks(root_url + '/oilmarketreport/reports/')

# get report URL
reportLinks = []
for url in yearLinks:
    links = getLinks(url)
    reportLinks.extend(links)

print(reportLinks)
for url in reportLinks:
    if '.pdf' in url:
        url = url.replace('../../..', '')
        # do download pdf file
        ....
    else:
        # do extract pdf url from html and download it
        ....
    ....

теперь вы можете зациклить reportLinks, чтобы получить pdf url

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