如何使用Scrapling包将爬取到的静态PDF文件正确保存至本地?
如何使用Scrapling包将爬取到的静态PDF文件正确保存至本地?
嘿,我来帮你搞定这个PDF保存的问题!你提到用Scrapling能成功获取到文档,但保存的时候出问题,大概率是没正确处理返回的二进制数据,咱们一步步来解决:
首先,先修正你代码里的小笔误——stealthy_headers=Tr应该是stealthy_headers=True,这个参数用来模拟浏览器请求头,避免被网站拦截。接下来,核心是要以二进制模式写入文件,因为PDF属于二进制格式,用普通文本模式保存会直接损坏文件。
给你调整后的完整代码:
from scrapling.fetchers import Fetcher url = 'https://www.website.com/document' # 修正参数并发起请求,允许自动重定向(如果需要的话) page = Fetcher.get(url, stealthy_headers=True, allow_redirects=True) # 先检查请求是否成功 if page.status_code == 200: # 用二进制写入模式打开文件,写入响应的二进制内容 with open('saved_document.pdf', 'wb') as pdf_file: pdf_file.write(page.content) print("PDF文件已成功保存到本地啦!") else: print(f"请求失败啦,状态码:{page.status_code}")
再给你几个小提示:
- 如果你想指定保存路径,直接把
'saved_document.pdf'改成完整路径就行,比如'./downloads/my_document.pdf',但要确保目标文件夹已经存在,不然会报错。 - 可以先确认返回的内容是不是真的PDF,比如打印
page.headers.get('Content-Type'),正常应该返回application/pdf,这样能排查是不是获取到了错误的内容。
试试上面的方法,应该就能顺利保存PDF了!
内容来源于stack exchange
相关产品推荐
相关产品推荐

