示例#1
0
    def parse(self, response):
        self.browser.get(response.url)

        # 대기할 시간
        time.sleep(1)

        # 전체 데이터 불러와서 html에 저장
        html = self.browser.find_element_by_xpath('//*').get_attribute(
            'outerHTML')
        selector = Selector(text=html)
        # 파싱
        rows = selector.xpath(
            '//*[@id="user-container"]/div[2]/div[2]/section/article/div[2]/section/div'
        )

        domain = "http://www.ksdaily.co.kr"

        items = []
        for row in rows:
            item = InvestCrawlerItem()
            # 이미지 유무 검사
            tmp_img = row.xpath('./div[1]/a/img/@src').extract()

            if not tmp_img:
                item['imgPath'] = tmp_img
                item['title'] = row.xpath('./div[1]/a/strong/text()').extract()
                item['urlPath'] = domain + row.xpath(
                    './div[1]/a/@href')[0].extract()
                tmp_time = row.xpath('./div[2]/text()').extract()
            else:
                item['imgPath'] = domain + "/news/" + tmp_img[0]
                item['title'] = row.xpath('./div[2]/a/strong/text()').extract()
                item['urlPath'] = domain + row.xpath(
                    './div[2]/a/@href')[0].extract()
                tmp_time = row.xpath('./div[3]/text()').extract()
            # 이미지가없는 파일의경우 div[2] , 이미지가 있는 경우 div[3]임
            split_tmp_time = tmp_time[0][len(tmp_time) - 17:]
            result_time = time_separate_check("yyyy-mm-dd", split_tmp_time)
            item['issue'] = result_time
            item['newspaper'] = "한국증권신문-해외"
            items.append(item)
            # 로그를 남길려면 yield로 리턴해야함
            # yield item
        items.reverse()

        try:
            insert_db(items, "한국증권신문-해외")
        finally:
            self.browser.quit()
示例#2
0
    def parse(self, response):
        self.browser.get(response.url)

        # 대기할 시간
        time.sleep(1)

        # 전체 데이터 불러와서 html에 저장
        html = self.browser.find_element_by_xpath('//*').get_attribute(
            'outerHTML')
        selector = Selector(text=html)
        # 파싱
        rows = selector.xpath(
            '//*[@id="container"]/div/div/div[1]/section/div[1]/ul/li/div[not(@class="con ads-latest01")]'
        )

        items = []
        for row in rows:
            item = InvestCrawlerItem()
            item['title'] = row.xpath('./div[2]/a/strong/text()').extract()
            # 이미지가없는 파일의경우 div[2] , 이미지가 있는 경우 div[3]임

            # 시간 설정
            tmp_time = row.xpath('./div[1]/span[2]/text()').extract()
            result_time = time_separate_check("mm-dd", tmp_time[0])
            item['issue'] = result_time

            tmp_img = row.xpath('./figure/a/img/@src').extract()
            if not tmp_img:
                item['imgPath'] = tmp_img
            else:
                item['imgPath'] = "http:" + tmp_img[0]

            item['urlPath'] = "http:" + row.xpath(
                './div[2]/a/@href')[0].extract()
            item['newspaper'] = "연합뉴스"

            items.append(item)
            # 로그를 남길려면 yield로 리턴해야함
            yield item
        items.reverse()

        try:
            insert_db(
                items,
                "연합뉴스",
            )
        finally:
            self.browser.quit()
示例#3
0
    def parse(self,response):
        self.browser.get(response.url)

        # 대기할 시간
        time.sleep(1)

        # 전체 데이터 불러와서 html에 저장
        html=self.browser.find_element_by_xpath('//*').get_attribute('outerHTML')
        selector=Selector(text=html)
        # 파싱
        rows= selector.xpath('//*[@id="container"]/div[1]/div[1]/ul/li')

        items=[]
        for row in rows:
           
            item=InvestCrawlerItem()
            item['title']=row.xpath('./div[1]/h3/a/text()').extract()

            # 시간 형식 통일 작업
            tmp_time=row.xpath('./div[2]/span/text()').extract()
            result_time=time_separate_check("yyyy.mm.dd",tmp_time[0])
            item['issue']=result_time
    
            tmp_img=row.xpath('./div[1]/span/a/img/@src').extract()
            
            if not tmp_img:
                 item['imgPath']=''
            else:
                item['imgPath']="http:"+tmp_img[0]
            item['urlPath']=row.xpath('./div[1]/h3/a/@href').extract()
            item['newspaper']="한국경제"
            items.append(item)
            # 로그를 남길려면 yield로 리턴해야함 
            yield item
        items.reverse()
     
        try:
            insert_db(items,"한국경제")
        finally:
            self.browser.quit()
示例#4
0
    def parse(self, response):
        self.browser.get(response.url)

        # 대기할 시간
        time.sleep(1)

        # 전체 데이터 불러와서 html에 저장
        html = self.browser.find_element_by_xpath('//*').get_attribute(
            'outerHTML')
        selector = Selector(text=html)
        # 파싱
        rows = selector.xpath('//*[@id="content"]/ul/li')

        items = []
        for row in rows:
            item = InvestCrawlerItem()
            item['title'] = row.xpath('./div/strong/a/text()').extract()

            tmp_time = row.xpath('./div/p/span/text()').extract()
            split_tmp_time = tmp_time[0][len(tmp_time) - 17:]
            result_time = time_separate_check("yyyy.mm.dd", split_tmp_time)
            item['issue'] = result_time
            item['imgPath'] = row.xpath('./a/img/@src').extract()
            item['urlPath'] = row.xpath('./div/strong/a/@href').extract()
            item['newspaper'] = "머니투데이"
            items.append(item)
            # 로그를 남길려면 yield로 리턴해야함
            yield item
        items.reverse()

        try:
            insert_db(
                items,
                "머니투데이",
            )
        finally:
            self.browser.quit()