मैं किसी वेबसाइट पर सभी पीडीएफ लिंक कैसे निकाल सकता हूं?


10

यह थोड़ा बंद विषय है, लेकिन मुझे उम्मीद है कि आप लोग मेरी मदद करेंगे। मुझे उन लेखों से भरी एक वेबसाइट मिली है जिनकी मुझे ज़रूरत है, लेकिन वे बहुत सारी बेकार फाइलों (मुख्य रूप से jpgs) के साथ मिश्रित हैं।

मैं जानना चाहूंगा कि क्या लिंक की सूची बनाने के लिए सर्वर पर सभी पीडीएफ को खोजने ( डाउनलोड न करने ) का कोई तरीका है । असल में मैं बस एक पीडीएफ है कि क्या डाउनलोड करने के लिए और क्या नहीं पर एक बेहतर दृश्य प्राप्त करने के लिए, सब कुछ बाहर फ़िल्टर करना चाहते हैं।


3
आप कार्य के लिए DownThemAll का उपयोग करने में सक्षम हो सकते हैं । यह एक फ़ायरफ़ॉक्स एक्सटेंशन है जो फ़िल्टर और अधिक फ़ाइलों को डाउनलोड करने की अनुमति देता है। मैंने इसे कभी खुद इस्तेमाल नहीं किया है इसलिए मैं एक पूर्ण ट्यूटोरियल पोस्ट नहीं कर पाऊंगा, लेकिन कोई और हो सकता है। यदि आप इस विस्तार से परिचित हैं तो कृपया उचित उत्तर देने के लिए स्वतंत्र महसूस करें।
Glutanimate

आह, मैंने अभी देखा कि आप लिंक को फ़िल्टर करना चाहते हैं, न कि उन्हें डाउनलोड करना। मुझे नहीं पता कि मेरे द्वारा पोस्ट किए गए एक्सटेंशन के साथ यह संभव है। लेकिन यह एक कोशिश के काबिल है!
ग्लूटानाट

जवाबों:


15

अवलोकन

ठीक अब तुम शुरु करो। यह एक स्क्रिप्ट के रूप में प्रोग्रामेटिक सॉल्यूशन है:

#!/bin/bash

# NAME:         pdflinkextractor
# AUTHOR:       Glutanimate (http://askubuntu.com/users/81372/), 2013
# LICENSE:      GNU GPL v2
# DEPENDENCIES: wget lynx
# DESCRIPTION:  extracts PDF links from websites and dumps them to the stdout and as a textfile
#               only works for links pointing to files with the ".pdf" extension
#
# USAGE:        pdflinkextractor "www.website.com"

WEBSITE="$1"

echo "Getting link list..."

lynx -cache=0 -dump -listonly "$WEBSITE" | grep ".*\.pdf$" | awk '{print $2}' | tee pdflinks.txt

# OPTIONAL
#
# DOWNLOAD PDF FILES
#
#echo "Downloading..."    
#wget -P pdflinkextractor_files/ -i pdflinks.txt

स्थापना

आपको स्थापित wgetऔर lynxस्थापित करने की आवश्यकता होगी :

sudo apt-get install wget lynx

प्रयोग

स्क्रिप्ट को .pdfवेबसाइट पर सभी फाइलों की एक सूची मिलेगी और इसे कमांड लाइन आउटपुट और वर्किंग डायरेक्टरी में टेक्स्टफाइल में डंप कर देगा। यदि आप "वैकल्पिक" wgetकमांड लिखते हैं, तो स्क्रिप्ट सभी फाइलों को एक नई निर्देशिका में डाउनलोड करने के लिए आगे बढ़ेगी।

उदाहरण

$ ./pdflinkextractor http://www.pdfscripting.com/public/Free-Sample-PDF-Files-with-scripts.cfm
Getting link list...
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/JSPopupCalendar.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/ModifySubmit_Example.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/DynamicEmail_XFAForm_V2.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/AcquireMenuItemNames.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/BouncingButton.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/JavaScriptClock.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/Matrix2DOperations.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/RobotArm_3Ddemo2.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/SimpleFormCalculations.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/TheFlyv3_EN4Rdr.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/ImExportAttachSample.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/AcroForm_BasicToggle.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/AcroForm_ToggleButton_Sample.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/AcorXFA_BasicToggle.pdf
http://www.pdfscripting.com/public/FreeStuff/PDFSamples/ConditionalCalcScripts.pdf
Downloading...
--2013-12-24 13:31:25--  http://www.pdfscripting.com/public/FreeStuff/PDFSamples/JSPopupCalendar.pdf
Resolving www.pdfscripting.com (www.pdfscripting.com)... 74.200.211.194
Connecting to www.pdfscripting.com (www.pdfscripting.com)|74.200.211.194|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 176008 (172K) [application/pdf]
Saving to: `/Downloads/pdflinkextractor_files/JSPopupCalendar.pdf'

100%[===========================================================================================================================================================================>] 176.008      120K/s   in 1,4s    

2013-12-24 13:31:29 (120 KB/s) - `/Downloads/pdflinkextractor_files/JSPopupCalendar.pdf' saved [176008/176008]

...

तुम "$(pwd)/pdflinks.txt"इसके बजाय क्यों इस्तेमाल करते हो pdflinks.txt?
19

@JFSebastian आप सही हैं, यह बेमानी है। मैंने स्क्रिप्ट को संशोधित किया। धन्यवाद!
Glutanimate

परफेक्ट काम करता है!
क्रिस स्मिथ

6

एक साधारण जावास्क्रिप्ट स्निपेट इसे हल कर सकता है: (नोट assume मुझे लगता है कि सभी पीडीएफ फाइलें लिंक में .pdf के साथ समाप्त हो गई हैं।)

अपना ब्राउज़र जावास्क्रिप्ट कंसोल खोलें, कोड का पालन करें और इसे js कंसोल पर पेस्ट करें, किया!

//get all link elements
var link_elements = document.querySelectorAll(":link");

//extract out all uris.
var link_uris = [];
for (var i=0; i < link_elements.length; i++)
{
    //remove duplicated links
    if (link_elements[i].href in link_uris)
        continue;

    link_uris.push (link_elements[i].href);
}

//filter out all links containing ".pdf" string
var link_pdfs = link_uris.filter (function (lu) { return lu.indexOf (".pdf") != -1});

//print all pdf links
for (var i=0; i < link_pdfs.length; i++)
    console.log (link_pdfs[i]);

1
मेरे लिए, यह बहुत ज्यादा रिटर्न देता है। luसमारोह होने की जरूरत: lu.endsWith (".pdf") == 1है, तो है कि मुझे उन में "* .pdf *" के साथ ही पीडीएफ लिंक, सभी नहीं लिंक मिल गया है, जो पोस्ट के रूप में मैं क्या कोड के साथ मिल गया। FWIW।
दि:05वद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.