如何使用python/pandas从href获取href链接

如何使用python/pandas从href获取href链接,python,pandas,beautifulsoup,python-requests,Python,Pandas,Beautifulsoup,Python Requests,我需要获取href中的href链接(我已经有了),所以我需要点击该href链接并收集其他href。我试过了,但从代码中只能得到第一个href,我想点击该代码并收集前一个代码中的href。那我怎么能做到呢。 我试过: from bs4 import BeautifulSoup import requests url = 'https://www.iea.org/oilmarketreport/reports/' page = requests.get(url) soup = BeautifulS

我需要获取href中的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) 

下面是如何循环获取报告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

你需要运行一个循环使用刮擦/爬行框架来迭代遍历链接扫描你解释一下我是如何在这里使用它的。我以前没有使用过它。你能解释一下你的问题吗?看起来链接已经有了您需要的所有href。使用上面的代码,我得到了href,但如果您在浏览器中复制和粘贴,则会出现所有月份链接(href),如果您再次单击月份名称,则在下一页会出现链接名称“下载完整报告”。所以,我想从“下载完整报告”链接下载所有pdf,并将其与我们的代码一起存储在数据库中--['',…'','',''我想''到2018年,我想下载pdf并存储在DB中。那么我该怎么做呢。它应该从1990年开始获取报告链接,尝试将
reportLinks
保存到文件中,看看是否提取了所有url。是的,获得了所有的.pdf文件链接,但链接不起作用,因为链接中有额外的点。“”正在添加,因此我如何克服从你能给我第二个问题的答案吗?把文件保存到数据库?