Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
wxpath — wxpath - XPath के साथ घोषणात्मक वेब क्रॉलिंग; एक वेब क्वेरी भाषा (WQL) | Kitploit
उपकरण/GitHubGitHub/rodricios/wxpath
OSINT (खुला स्रोत खुफिया)टोहीडेटा निष्कासनजानकारी एकत्र करनावेब सुरक्षाक्रॉलर
GitHubrodricios/wxpath

wxpath

wxpath - XPath के साथ घोषणात्मक वेब क्रॉलिंग; एक वेब क्वेरी भाषा (WQL)

रिपॉजिटरी देखें
1116172 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

wxpath - XPath के साथ घोषणात्मक वेब ग्राफ ट्रैवर्सल

Python 3.10+ Documentation Status

नया: TUI - wxpath एक्सप्रेशन्स का परीक्षण करने और डेटा निर्यात करने के लिए इंटरैक्टिव टर्मिनल इंटरफ़ेस (Textual द्वारा संचालित)।

Wxpath TUI डेमो स्क्रीनशॉट

इंस्टॉल

Python 3.10+ आवश्यक है।

pip install wxpath
# TUI समर्थन के लिए:
pip install "wxpath[tui]"
# uv के माध्यम से तुरंत TUI लॉन्च करें:
uvx --from "wxpath[tui]" wxpath-tui

wxpath क्या है?

wxpath एक घोषणात्मक वेब क्रॉलर है जिसमें ट्रैवर्सल सीधे XPath में व्यक्त किया जाता है। इम्पेरेटिव क्रॉल लूप लिखने के बजाय, wxpath आपको एक ही एक्सप्रेशन में यह वर्णन करने देता है कि क्या अनुसरण करना है और क्या निकालना है। wxpath उस एक्सप्रेशन को समवर्ती रूप से, breadth-first-ish, निष्पादित करता है और परिणामों को खोजे जाने पर स्ट्रीम करता है।

यह एक्सप्रेशन एक पेज लाता है, लिंक निकालता है, और उन्हें समवर्ती रूप से स्ट्रीम करता है - किसी क्रॉल लूप की आवश्यकता नहीं:

import wxpath

expr = "url('https://quotes.toscrape.com')//a/@href"

for link in wxpath.wxpath_async_blocking_iter(expr):
    print(link)

url(...) ऑपरेटर और /// सिंटैक्स प्रस्तुत करके, wxpath का इंजन रिकर्सिव (या पैजिनेटेड) वेब क्रॉलिंग और एक्सट्रैक्शन करने में सक्षम है:

import wxpath

path_expr = """
url('https://quotes.toscrape.com')
  ///url(//a/@href)
    //a/@href
"""

for item in wxpath.wxpath_async_blocking_iter(path_expr, max_depth=1):
    print(item)

wxpath क्यों?

अधिकांश वेब स्क्रेपर्स आपको पहले क्रॉल कंट्रोल फ्लो और दूसरे एक्सट्रैक्शन लिखने के लिए बाध्य करते हैं।

wxpath इन दो चरणों को एक में समेटता है:

  • आप ट्रैवर्सल को घोषणात्मक रूप से वर्णित करते हैं
  • एक्सट्रैक्शन इनलाइन व्यक्त किया जाता है
  • इंजन शेड्यूलिंग, समवर्तीता और डिडुप्लिकेशन संभालता है

RAG-रेडी आउटपुट

ग्राफ से सीधे स्वच्छ, संरचित JSON पदानुक्रम निकालें - अपने LLMs को सिग्नल दें, शोर नहीं। अधिक विवरण के लिए LangChain इंटीग्रेशन देखें।

डिटर्मिनिस्टिक

wxpath डिटर्मिनिस्टिक है (अर्थात: LLMs द्वारा संचालित नहीं)। हालांकि हम गारंटी नहीं दे सकते कि नेटवर्क स्थिर है, हम गारंटी दे सकते हैं कि ट्रैवर्सल स्थिर है।

दस्तावेज़ीकरण (WIP)

दस्तावेज़ीकरण अब यहाँ उपलब्ध है।

सामग्री

  • उदाहरण: नॉलेज ग्राफ
  • भाषा डिज़ाइन
  • url(...) और ///url(...) समझाया गया
  • सामान्य प्रवाह
  • एसिंक्रोनस क्रॉलिंग
  • विनम्र क्रॉलिंग
  • आउटपुट प्रकार
  • XPath 3.1
  • प्रोग्रेस बार
  • CLI
  • TUI
  • पर्सिस्टेंस और कैशिंग
  • सेटिंग्स
  • हुक्स (प्रयोगात्मक)
  • इंस्टॉल
  • अधिक उदाहरण
  • तुलनाएँ
  • उन्नत: इंजन और क्रॉलर कॉन्फ़िगरेशन
  • प्रोजेक्ट फिलॉसफी
  • चेतावनियाँ
  • वाणिज्यिक सहायता/परामर्श
  • वर्ज़निंग
  • लाइसेंस

उदाहरण

import wxpath
from wxpath.settings import CRAWLER_SETTINGS

# विनम्रता के लिए कस्टम हेडर; कुछ साइटों के लिए आवश्यक (जैसे, Wikipedia)
CRAWLER_SETTINGS.headers = {'User-Agent': 'my-app/0.4.0 (contact: [email protected])'}

# क्रॉल करें, फ़ील्ड निकालें, एक नॉलेज ग्राफ बनाएँ
path_expr = """
url('https://en.wikipedia.org/wiki/Expression_language')
  ///url(
        //main//a/@href[
            starts-with(., '/wiki/') and not(contains(., ':'))
        ]
    )
    /map{
        'title': (//span[contains(@class, "mw-page-title-main")]/text())[1] ! string(.),
        'url': string(base-uri(.)),
        'short_description': //div[contains(@class, 'shortdescription')]/text() ! string(.),
        'forward_links': //div[@id="mw-content-text"]//a/@href ! string(.)
    }
"""

for item in wxpath.wxpath_async_blocking_iter(path_expr, max_depth=1):
    print(item)

नोट: कुछ साइटें (Wikipedia सहित) उचित हेडर के बिना अनुरोधों को ब्लॉक कर सकती हैं।
कस्टम User-Agent सेट करने के लिए उन्नत: इंजन और क्रॉलर कॉन्फ़िगरेशन देखें।

उपरोक्त एक्सप्रेशन निम्नलिखित कार्य करता है:

  1. निर्दिष्ट URL, https://en.wikipedia.org/wiki/Expression_language पर शुरू होता है।
  2. <main> सेक्शन में उन लिंक्स को फ़िल्टर करता है जो /wiki/ से शुरू होते हैं और उनमें कोलन (:) नहीं होता।
  3. प्रत्येक मिले लिंक के लिए,
    • यह लिंक का अनुसरण करता है और पेज का शीर्षक, URL, और संक्षिप्त विवरण निकालता है।
    • यह चरण 2 को तब तक दोहराता है जब तक अधिकतम गहराई तक नहीं पहुँच जाता।
  4. खोजे जाने पर निकाले गए डेटा को स्ट्रीम करता है।

url(...) और ///url(...) समझाया गया

  • url(...) एक कस्टम ऑपरेटर है जो उपयोगकर्ता-निर्दिष्ट या आंतरिक रूप से उत्पन्न URL की सामग्री लाता है और आगे की XPath प्रोसेसिंग के लिए इसे lxml.html.HtmlElement के रूप में लौटाता है।
  • ///url(...) एक डीप क्रॉल को इंगित करता है। यह रनटाइम इंजन को निर्दिष्ट max_depth तक लिंक्स का अनुसरण जारी रखने के लिए कहता है। बार-बार url() हॉप्स के विपरीत, यह एक ही एक्सप्रेशन को गहरे ग्राफ अन्वेषण का वर्णन करने की अनुमति देता है। चेतावनी: ट्रैवर्सल विस्फोट से बचने के लिए सावधानी और बाधाओं (max_depth या XPath प्रेडिकेट्स के माध्यम से) के साथ उपयोग करें।

भाषा डिज़ाइन

भाषा डिज़ाइन के विवरण के लिए DESIGN.md देखें। आप मूल अवधारणाओं को देखेंगे और भाषा को शुरू से डिज़ाइन करेंगे।

सामान्य प्रवाह

wxpath एक एक्सप्रेशन को ट्रैवर्सल और एक्सट्रैक्शन चरणों की सूची के रूप में मूल्यांकित करता है (आंतरिक रूप से Segments कहा जाता है)।

url(...) क्रॉल कार्यों को स्थिर रूप से (एक निश्चित URL के माध्यम से) या गतिशील रूप से (XPath एक्सप्रेशन से व्युत्पन्न URL के माध्यम से) बनाता है। URLs को वैश्विक रूप से, best-effort आधार पर डिडुप्लिकेट किया जाता है - प्रति-गहराई नहीं।

XPath सेगमेंट लाए गए दस्तावेज़ों पर कार्य करते हैं (तुरंत पूर्ववर्ती url(...) ऑपरेशनों के माध्यम से लाए गए)।

///url(...) डीप क्रॉलिंग को इंगित करता है - यह max_depth तक breadth-first-ish आगे बढ़ता है।

परिणाम तैयार होते ही प्राप्त होते हैं।

एसिंक्रोनस क्रॉलिंग

wxpath asyncio/aiohttp-first है, जो क्रॉलिंग और डेटा निष्कर्षण के लिए एक एसिंक्रोनस API प्रदान करता है।

import asyncio
from wxpath import wxpath_async

items = []

async def main():
    path_expr = "url('https://en.wikipedia.org/wiki/Expression_language')///url(//@href[starts-with(., '/wiki/')])//a/@href"
    async for item in wxpath_async(path_expr, max_depth=1):
        items.append(item)

asyncio.run(main())

ब्लॉकिंग, समवर्ती अनुरोध

wxpath एक asyncio-in-sync API भी प्रदान करता है, जो सिंक्रोनस कोड की सरलता बनाए रखते हुए कई पेजों को समवर्ती रूप से क्रॉल करने की अनुमति देता है। यह विशेष रूप से सख्ती से सिंक्रोनस निष्पादन वातावरण (यानी, asyncio इवेंट लूप के अंदर नहीं) में क्रॉल के लिए उपयोगी है जहाँ प्रदर्शन चिंता का विषय है।

from wxpath import wxpath_async_blocking_iter

path_expr = "url('https://en.wikipedia.org/wiki/Expression_language')///url(//@href[starts-with(., '/wiki/')])//a/@href"
items = list(wxpath_async_blocking_iter(path_expr, max_depth=1))

विनम्र क्रॉलिंग

wxpath डिफ़ॉल्ट रूप से WXPathEngine(..., robotstxt=True) कंस्ट्रक्टर के माध्यम से robots.txt का सम्मान करता है।

आउटपुट प्रकार

wxpath Python API संरचित ऑब्जेक्ट प्रदान करता है।

टूल डाउनलोड करें