Webscraping:从javascript链接下载pdf

问题描述 投票:3回答:1

我正在使用requests中的python库并试图搜索一个包含大量.pdf格式的公共报告和文档的网站。我已经在其他网站上成功完成了这项工作,但我在这个问题上遇到了障碍:链接是javascript函数(对象?我对javascript一无所知)将我重定向到另一个页面,然后它有原始pdf链接。像这样的东西:

import requests
from bs4 import BeautifulSoup as bs

url = 'page with search results.com'
html = requests.get(url).text
soup = bs(html)
obj_list = soup.findAll('a')
for a in obj_list: 
    link = a['href']
    print(link)

>> javascript:readfile2("F","2201","2017_2201_20170622F14.pdf")

理想情况下,我想找到一种方法来找到这将导航到的URL。我可以使用selenium并点击链接,但是有很多文档,这将是时间和资源密集型的。有没有办法用requests或类似的库?

编辑:看起来每个链接都转到同一个网址,根据您点击的链接加载不同的pdf。这让我觉得在requests没有办法做到这一点,但我仍然对非硒的东西抱有希望。

python web-scraping python-requests
1个回答
0
投票

可能存在这些PDF文件存在的默认URL。

您需要找到URL,点击超链接后打开这些pd​​f文件。

获得该URL后,您需要解析锚文本中的pdf名称。

之后,您使用url(在其上存在pdf)附加pdf名称。并请求最终的网址。

© www.soinside.com 2019 - 2024. All rights reserved.