2013-03-04 4 views
0

강의 요강에 MITOPENCOURSEWARE 사이트를 긁어 내 거미가 작동하지 않습니다. 누군가 내가 그 문제가 무엇인지 알아낼 수있게 도와 줄 수 있습니까? . *는 모든 강좌에 참여해야합니다. 이게 옳은 거니?강의 요강에 MITOPENCOURSEWARE 사이트를 긁어 모으기 위해 스콥 사용

1 from scrapy.contrib.spiders import CrawlSpider, Rule 
    2 from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
    3 from scrapy.selector import HtmlXPathSelector 
    4 from opensyllabi.items import OpensyllabiItem 
    5 
    6 class MITSpider(CrawlSpider): 
    7  name = 'mit' 
    8  allowed_domains = ['ocw.mit.edu'] 
    9  start_urls = ['http://ocw.mit.edu/courses'] 
10  rules = [Rule(SgmlLinkExtractor(allow=['/.*/.*/syllabus']), 'parse_syllabus')] 
11 
12  def parse_syllabus(self, response): 
13   x = HtmlXPathSelector(response) 
14 
15   syllabus = OpensyllabiItem() 
16   syllabus['url'] = response.url 
17   syllabus['body'] = x.select("//div[@id='course_inner_section']").extract() 
18   return syllabus 
+0

어떻게 작동하지 않는지, 즉 어떤 현상이 발생했는지 어떻게 알 수 있습니까? 그리고 '. *'을주의해서 사용하십시오. '/ [^ /] +/[^ /] +/강의 계획서'를 사용해보십시오. –

+0

0 페이지를 크롤링합니다. 내가 네 길로해도. – user2130389

+0

시작 URL에'실러버스 '와 연결된 링크가 있습니까? 링크 표시. –

답변

1

시도 :

rules = [ 
    Rule(SgmlLinkExtractor(allow=r'/[^/]+/[^/]+/syllabus'), 'parse_syllabus'), 
    Rule(SgmlLinkExtractor()), 
] 

첫 페이지에있는 모든 링크를 얻을하고 조심하는, 즉 링크의 많은입니다.

+0

좋아요! 일했다. 고맙습니다! 이제 각각을 다른 파일에 어떻게 저장합니까? 하나의 json 파일에 모든 파일을 저장하는 방법을 알고 있지만 여러 파일로 구분하고 싶습니다. – user2130389

+0

기본적으로 나는 각 파일의 본문 텍스트를 파일로 저장하기를 원합니다. – user2130389

+1

"감사합니다"우리의 열심히 일하는 사람들에게 명성을 안겨줍니다. 투표 및 수락. 그것들은 좋은 것들입니다. 그러면 인터넷에서 500 페이지를 읽고 다음 호를 해결하는 방법을 읽으십시오. 그 후 확실하게 다른 질문을 할 수 있습니다. –

관련 문제