大家好,我需要一些有关网络抓取工具的帮助,因为我想从 https://jbiomedsci.biomedcentral.com/ 下载 100 多个 pdf 文件,因为我正在尝试从网站下载尽可能多的生物医学 pdf 文件。我已经使用本网站的一些答案构建了网络爬虫,但似乎无法正常工作。
我的目标是下载 pdf 并将它们存储在特定文件夹中,如果您对此有任何帮助,我将不胜感激。
url1='https://ip-geolocation.whoisxmlapi.com/api/v1?apiKey=MyApiKey'
res = requests.request('GET', url1)
Jdata = res.json()
city = Jdata['location']['city']
completed_url = "http://api.openweathermap.org/data/2.5/weather?
appid=myapiid&q="+city
r = requests.get(completed_url)
abcd = r.json()
abcdmain = abcd['main']
答案 0 :(得分:1)
我已经修改了您的脚本以使其正常工作。当您尝试以下脚本时,它将在您的脚本所在的同一目录中创建一个文件夹,并将下载的 pdf 文件存储在新创建的文件夹中。
import os
import requests
from bs4 import BeautifulSoup
base = 'https://jbiomedsci.biomedcentral.com{}'
url = 'https://jbiomedsci.biomedcentral.com/articles'
res = requests.get(url)
soup = BeautifulSoup(res.text,"html.parser")
foldername = url.split("/")[-1]
os.mkdir(foldername)
for pdf in soup.select("a[data-track-action='Download PDF']"):
filename = pdf['href'].split("/")[-1]
fdf_link = base.format(pdf['href']) + ".pdf"
with open(f"{foldername}/{filename}.pdf", 'wb') as f:
f.write(requests.get(fdf_link).content)