我正在使用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")
理想情况下,我想找到一种方法来查找此网址。我可以使用selenium
并单击链接,但是有很多文档,这会占用大量时间和资源。是否可以使用requests
或类似的库来做到这一点?
编辑:看起来每个链接都指向相同的URL,根据您单击的链接,它会加载不同的pdf。这使我认为requests
中没有办法做到这一点,但我仍然对某些非基于硒的方法抱有希望。
答案 0 :(得分:0)
可能存在这些PDF文件的默认网址。
您需要找到URL,单击超级链接后,这些pdf文件将在其上打开。
获得该网址后,您需要从锚文本中解析pdf名称。
然后,在pdf名称后附加url(存在pdf)。并请求最终网址。