मैं SgmlLinkExtractor को काम करने की कोशिश कर रहा हूं। , मैं प्रवेशस्केपर SgmlLinkExtractor प्रश्न
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/",)), callback='parse'),)
तो, प्रारंभिक यूआरएल 'http://www.whitecase.com/jacevedo/'
है और मैं allow=('/aadler',)
प्रवेश कर रहा हूँ और उम्मीद
SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)
मैं सिर्फ allow=()
तो उपयोग कर रहा हूँ:
यह हस्ताक्षर है कि '/aadler/'
स्कैन भी किया जाएगा। लेकिन इसके बजाय, मकड़ी प्रारंभिक यूआरएल स्कैन करता है और फिर बंद हो जाता है:
[wcase] INFO: Domain opened
[wcase] DEBUG: Crawled </jacevedo/> (referer: <None>)
[wcase] INFO: Passed NuItem(school=[u'JD, ', u'Columbia Law School, Harlan Fiske Stone Scholar, Parker School Recognition of Achievement in International and Foreign Law, ', u'2005'])
[wcase] INFO: Closing domain (finished)
मैं यहां क्या गलत कर रहा हूं?
क्या कोई यहां है जो स्केपर का सफलतापूर्वक उपयोग करता है जो इस मकड़ी को खत्म करने में मेरी मदद कर सकता है?
सहायता के लिए धन्यवाद।
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from Nu.items import NuItem
from urls import u
class NuSpider(CrawlSpider):
domain_name = "wcase"
start_urls = ['xxxxxx/jacevedo/']
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/",)), callback='parse'),)
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = NuItem()
item['school'] = hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)')
return item
SPIDER = NuSpider()
नोट::
मैं नीचे मकड़ी के लिए कोड शामिल तो मेरे पोस्ट 1 से अधिक यूआरएल इसलिए प्रारंभिक यूआरएल के रूप में आवश्यक विकल्प नहीं दूँगा। उसके लिए माफ़ करना।
आप इस लाइन का मतलब है:।।। कॉलबैक = 'पार्स' – Zeynel
हां। अपने क्रॉलस्पीडर नियम में कॉलबैक "पार्स" का उपयोग न करें। –
और अपनी 'पार्स' विधि को 'parse_item' के रूप में बदलें – Eduardo