如何使用python/pandas从href获取href链接
我需要获取href中的href链接(我已经有了),所以我需要点击该href链接并收集其他href。我试过了,但从代码中只能得到第一个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
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文件链接,但链接不起作用,因为链接中有额外的点。“”正在添加,因此我如何克服从你能给我第二个问题的答案吗?把文件保存到数据库?