class AljazeeraSpider(XMLFeedSpider):
name = "aljazeera"
allowed_domains = ["aljazeera.com"]
start_urls = [
'http://www.aljazeera.com/',
]
def parse(self, response):
hxs = HtmlXPathSelector(response) # The xPath selector
titles = hxs.select('//div[contains(@class,"SkyScrapperBoxes")]/div[contains(@class,"skyscLines")]')
if not titles:
MailNotify().send_mail("Aljazeera", "Scraper Report")
items = []
for titles in titles:
item = NewsItem()
item['title'] = escape(''.join(titles.select('a/text()').extract()))
item['link'] = "http://www.aljazeera.com" + escape(''.join(titles.select('a/@href').extract()))
item['description'] = ''
item = Request(item['link'], meta={'item': item}, callback=self.parse_detail)
items.append(item)
return items
def parse_detail(self, response):
item = response.meta['item']
sel = HtmlXPathSelector(response)
detail = sel.select('//td[@class = "DetailedSummary"]')
item['details'] = remove_html_tags(escape(''.join(detail.select('p').extract())))
item['location'] = ''
published_date = sel.select('//span[@id = "ctl00_cphBody_lblDate"]')
item['published_date'] = escape(''.join(published_date.select('text()').extract()))
return item
मैं वर्तमान में वेबसाइट को क्रॉल करने के लिए स्केपर पर काम कर रहा हूं। मुझे पाइथन में एकजुट होने के बारे में कुछ जानकारी है। लेकिन, यह जांचने के लिए कि मैं कौन सा लिंक काम कर रहा हूं, और item['location']
, item['details']
मूल्य वापस कर रहे हैं या नहीं, मैं सबसे अचूक कैसे लिख सकता हूं? मैंने स्केपर अनुबंध सीखा है लेकिन कुछ भी समझ नहीं सकता है। तो, इस मामले में सबसे ज्यादा कैसे लिख सकते हैं?मैं पाइथन का उपयोग कर वेब स्केपर में यूनिट परीक्षण कैसे लिख सकता हूं?