2013-12-09 20 views
0

我有一個scrapers腳本,可以將二進制內容從發佈商網站中提取出來。它的目的是取代手動操作,以節省成百上千個單獨的pdf文件,而這些文件是同事們不得不承擔的。Python - 通過iFrames直接鏈接阻止,我仍然可以得到二進制文件嗎?

的網站是基於憑據,我們有正確的憑據和權限來收集這些內容。

我曾經遇到過一個網站,有一個iFrame裏面的PDF文件。

我可以提取從HTML內容的URL。當我將URL提供給內容採集器時,我收集了一小段HTML,內容如下:<html><body>Forbidden: Direct file requests are not allowed.</body></html>

我可以直接將URL提供給瀏覽器,並且PDF文件可以正確解析。

我假設有一個會話cookie(或者某些東西,我不是100%滿意於術語)與請求一起發送,以顯示GET請求來自實時會話,而不是遠程鏈接。

我看着闖民宅的網址,看到指向我收集了測試的一天(我擦洗從URL identifers)同一篇文章中,這些不同的URL: -

http://content_provider.com/NDM3NTYyNi45MTcxODM%3D/elibrary//title/issue/article.pdf http://content_provider.com/NDM3NjYyMS4wNjU3MzY%3D/elibrary//title/issue/article.pdf http://content_provider.com/NDM3Njc3Mi4wOTY3MDM%3D/elibrary//title/issue/article.pdf http://content_provider.com/NDM3Njg3Ni4yOTc0NDg%3D/elibrary//title/issue/article.pdf

這表明網址中有某些內容是唯一的,並且需要與其他內容相關聯來規避直接鏈接檢測器。

如何克服這個問題有什麼建議?

回答

0

好的。答案是Cookies和標題。我通過httpfox收集了get頭信息,並在我的腳本中製作了一個相同的頭對象,並且我從request.cookie中獲取了會話ID,並向每個請求發送了Cookie。

良好的措施我還設置了用戶代理到已知的工作瀏覽器代理,以防萬一服務器被檢查代理的詳細信息。

工作正常。

相關問題