मैं सोच रहा था कि क्या फॉर्मों को खोजने और परिणामों से मिलान निकालने के लिए प्रविष्टियों में टाइप करने का कार्य "स्वचालित" करना संभव है। उदाहरण के लिए, मेरे पास जर्नल लेखों की एक सूची है जिसके लिए मैं डीओआई (डिजिटल ऑब्जेक्ट आइडेंटिफायर) प्राप्त करना चाहता हूं; मैन्युअल रूप से इसके लिए मैं जर्नल लेख खोज पृष्ठ (उदाहरण के लिए, http://pubs.acs.org/search/advanced) पर जाउंगा, लेखकों/शीर्षक/वॉल्यूम (आदि) में टाइप करें और फिर आलेख को लौटाए गए परिणामों की सूची में से ढूंढें, और डीओआई और पेस्ट चुनें कि मेरी संदर्भ सूची में। मैं नियमित रूप से डेटा विश्लेषण के लिए आर और पायथन का उपयोग करता हूं (मैं आरसीआरएल पर एक पोस्ट से प्रेरित था) लेकिन वेब प्रोटोकॉल के बारे में बहुत कुछ नहीं जानता ... ऐसी चीज संभव है (उदाहरण के लिए पाइथन के सुंदर सूप जैसे कुछ का उपयोग करना?)। क्या इस कार्य के समान दूरस्थ रूप से कुछ भी करने के लिए कोई अच्छा संदर्भ है? मैं सामान्य स्क्रैपिंग के लिए वेब स्क्रैपिंग और टूल्स के बारे में सीखने में उतना ही रूचि रखता हूं जितना कि यह विशेष कार्य पूरा हो रहा है ... आपके समय के लिए धन्यवाद!खोज फ़ॉर्म भरने (और पुनर्प्राप्त) करने के लिए वेब स्क्रैपिंग?
उत्तर
ब्यूटीफुल सूप कि webpages- पार्स करने के लिए बहुत अच्छा है (से जो Albahri के "संक्षेप में सी #" अनुकूलित) क्या आप क्या करना चाहते का आधा है। अजगर, पर्ल, और रूबी सब मशीनीकरण का एक संस्करण है, और है कि अन्य आधा है:
http://wwwsearch.sourceforge.net/mechanize/
मशीनीकरण चलो आप एक ब्राउज़र को नियंत्रित:
# Follow a link
browser.follow_link(link_node)
# Submit a form
browser.select_form(name="search")
browser["authors"] = ["author #1", "author #2"]
browser["volume"] = "any"
search_response = br.submit()
मशीनीकरण और ब्यूटीफुल सूप के साथ आप एक है महान शुरुआत के रूप में इस त्वरित माणिक scraping गाइड में इस्तेमाल किया एक अतिरिक्त उपकरण मैं विचार था, Firebug है:
http://www.igvita.com/2007/02/04/ruby-screen-scraper-in-60-seconds/
Firebug, दस्तावेजों को पार्स आप कुछ गंभीर समय की बचत के लिए xpaths के अपने निर्माण की गति कर सकते हैं।
शुभकामनाएं!
ग्रेट !! धन्यवाद - बहुत उपयोगी! – hatmatrix
स्टीफन! मुझे एक जवाब चिह्नित करें! मैं एक सहकर्मी को 100 अंक तक रेसिंग कर रहा हूं :-) – mixonic
मैं कोशिश कर रहा हूं! मुझे अभी एक ओपनआईडी मिली है लेकिन यह मुझे बताती है कि मुझे वोट देने के लिए 15 प्रतिष्ठा है ?? क्षमा करें, स्टैक ओवरफ्लो पर पहली बार ... क्या यह जटिल है? – hatmatrix
WebRequest req = WebRequest.Create("http://www.URLacceptingPOSTparams.com");
req.Proxy = null;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
//
// add POST data
string reqString = "searchtextbox=webclient&searchmode=simple&OtherParam=???";
byte[] reqData = Encoding.UTF8.GetBytes (reqString);
req.ContentLength = reqData.Length;
//
// send request
using (Stream reqStream = req.GetRequestStream())
reqStream.Write (reqData, 0, reqData.Length);
string response;
//
// retrieve response
using (WebResponse res = req.GetResponse())
using (Stream resSteam = res.GetResponseStream())
using (StreamReader sr = new StreamReader (resSteam))
response = sr.ReadToEnd();
// use a regular expression to break apart response
// OR you could load the HTML response page as a DOM
धन्यवाद - यह जानना अच्छा है कि यह संभव है! ...मैं अनुमान लगा रहा हूँ। (.NET से बहुत परिचित नहीं है, हालांकि मुझे लगता है कि यह सभी क्रोध है ...) – hatmatrix
वेब स्क्रैपिंग के लिए कई टूल हैं। IMacros नामक एक अच्छी फ़ायरफ़ॉक्स प्लगइन है। यह बहुत अच्छा काम करता है और किसी भी प्रोग्रामिंग ज्ञान की आवश्यकता नहीं है। मुफ्त संस्करण यहां से डाउनलोड किया जा सकता है: https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/ iMacros के बारे में सबसे अच्छी बात यह है कि यह आपको मिनटों में शुरू कर सकता है, और इसे बैश कमांड लाइन से भी लॉन्च किया जा सकता है, और इसे बैश स्क्रिप्ट के भीतर से भी बुलाया जा सकता है।
एक और उन्नत कदम सेलेनियम वेबड्राइव होगा। सेलेनियम चुनने का कारण यह है कि यह शुरुआती सूट के लिए एक महान तरीके से प्रलेखित है। केवल निम्नलिखित page:
आपको किसी भी समय चलने के लिए तैयार करेगा। सेलेनियम जावा, पायथन, PHP, सी का समर्थन करता है, इसलिए यदि आप इनमें से किसी भी भाषा से परिचित हैं, तो आप आवश्यक सभी आदेशों से परिचित होंगे। मैं सेलेनियम की वेबड्राइव भिन्नता पसंद करता हूं, क्योंकि यह एक ब्राउज़र खोलता है, ताकि आप फ़ील्ड और आउटपुट देख सकें। वेबड्राइव का उपयोग करके स्क्रिप्ट स्थापित करने के बाद, आप आसानी से स्क्रिप्ट को आईडीई में माइग्रेट कर सकते हैं, इस प्रकार हेडलेस चला रहे हैं।
आदेश
sudo easy_install selenium
यह टाइपिंग निर्भरता और सब कुछ आप के लिए आवश्यक का ख्याल रखना होगा द्वारा सेलेनियम आप कर सकते हैं स्थापित करने के लिए।
आदेश अपनी स्क्रिप्ट सहभागी को चलाने के लिए, बस एक टर्मिनल खोलें, और टाइप
python
आप अजगर संकेत दिखाई देगा में, >>> और आप आदेशों में लिख सकते हैं।
यहाँ एक नमूना कोड जो आप टर्मिनल में पेस्ट कर सकते हैं, यह शब्द चीज
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
public static void main(String[] args) {
// Create a new instance of the Firefox driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new FirefoxDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Alternatively the same thing can be done like this
// driver.navigate().to("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see: "cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
//Close the browser
driver.quit();
}}
मुझे आशा है कि यह आप आरंभिक बढ़त दे सकता है के लिए गूगल खोज करेंगे है।
चीयर्स :)
सबसे पहले आप उपयोगकर्ता को पायथन के लिए सेलेनियम क्लाइंट स्थापित करने के लिए कह रहे हैं; लेकिन आपका कोड-उदाहरण जावा कोड है। यह भ्रामक है। – knb
- 1. PHP में वेब स्क्रैपिंग
- 2. वेब क्रॉलिंग और वेब-स्क्रैपिंग के बीच क्या अंतर है?
- 3. वेब फ़ॉर्म के लिए टाइपस्क्रिप्ट
- 4. खोज फ़ॉर्म और परिणामों के लिए रीढ़ की हड्डी संरचना?
- 5. पायथन 3 वेब स्क्रैपिंग विकल्प
- 6. रूबी - वेब स्क्रैपिंग - (ओपनयूआरआई :: HTTPError)
- 7. एक अच्छा नागरिक और वेब-स्क्रैपिंग होने के नाते
- 8. PHP के लिए स्क्रैपिंग लाइब्रेरी - phpQuery?
- 9. खोज शब्दों की सूची 'भरने' के लिए एनएलपी एल्गोरिदम
- 10. वेब स्क्रैपिंग को माउस क्लिक करने की आवश्यकता है?
- 11. एएसपी.नेट खोज फ़ॉर्म - एसक्यूएल के लिए गतिशील लिंक?
- 12. वेब स्क्रैपिंग का पता लगाने का तरीका
- 13. पावर शैल वेब स्क्रैपिंग एसएसएल/टीएसएल अंक
- 14. संचयक भरने के लिए भरने वाले संचयक
- 15. पाइथन का उपयोग कर वेब स्क्रैपिंग डेटा?
- 16. फ़ॉर्म भरने के बाद मैं कोड कैसे निष्पादित करूं?
- 17. साइट खोज बनाने के लिए सोलर और वेब साइट इंडेक्सिंग
- 18. किसी फ़ॉर्म के सत्यापनकर्ता को पुनर्प्राप्त कैसे करें
- 19. वेबपृष्ठ के "पूर्वावलोकन" के लिए स्क्रैपिंग - पायथन
- 20. एक फॉर्म भरने के लिए जेएमटर का उपयोग करना?
- 21. एचएसटीपीएस स्क्रैपिंग के लिए जेएसओपी कुकीज़
- 22. एचटीएमएल स्क्रैपिंग और सीएसएस प्रश्न
- 23. छवि को वेब फ़ॉर्म में खींचें और छोड़ें
- 24. बड़े पैमाने पर स्क्रैपिंग/पार्सिंग के लिए कौन सी तकनीक?
- 25. वेब फ़ॉर्म को पॉप्युलेट करने के लिए सबसे अच्छा कैलेंडर पॉप-अप क्या है?
- 26. Lucene.Net खोज कीवर्ड को हाइलाइट करने के लिए खोज परिणाम
- 27. फॉर्म बनाने/पुनर्प्राप्त करने के लिए कर्ल का उपयोग
- 28. फ़ाइल खोज के लिए इंस्टॉल करने योग्य खोज इंजन पैकेज
- 29. वेब स्क्रैपिंग - वेबपृष्ठ पर मुख्य सामग्री की पहचान कैसे करें
- 30. फॉर्म भरने के लिए बुकमार्कलेट बनाएं
आप इस समस्या का एक अच्छा समाधान के साथ आने के लिए है? मुझे यह एक समान (डुप्लिकेट?) प्रश्न पूछने के बाद मिला है http://stackoverflow.com/questions/9711539/can-i-query-the-digital-object-identifier-for-a-list-of-citations –
@ डेविड - नहीं, क्षमा करें। टिप्पणी करने के किसी भी विकल्प के साथ काफी दूर नहीं मिला है ... – hatmatrix