2
내 머리를 여러 번 부딪 히고 마침내 여기에와 있습니다.Scrapy 콘텐츠의 재귀적인 다운로드
문제점 : 각 크레이그리스트 게시 내용을 다운로드하려고합니다. 콘텐츠 란 휴대 전화의 설명과 같이 '게시 본문'을 의미합니다. iPhone이 모든 흥분으로 끝난 후 새로운 오래된 전화를 찾고 있습니다.
코드는 에 의해 멋진 작품입니다. Michael Herman.
내 스파이더 클래스
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import *
from craig.items import CraiglistSampleItem
class MySpider(CrawlSpider):
name = "craigs"
allowed_domains = ["craigslist.org"]
start_urls = ["http://minneapolis.craigslist.org/moa/"]
rules = (Rule (SgmlLinkExtractor(allow=("index\d00\.html",),restrict_xpaths=('//p[@class="nextpage"]',))
, callback="parse_items", follow= True),
)
def parse_items(self,response):
hxs = HtmlXPathSelector(response)
titles = hxs.select("//span[@class='pl']")
items = []
for titles in titles:
item = CraiglistSampleItem()
item ["title"] = titles.select("a/text()").extract()
item ["link"] = titles.select("a/@href").extract()
items.append(item)
return items
그리고 항목 클래스
from scrapy.item import Item, Field
class CraiglistSampleItem(Item):
title = Field()
link = Field()
코드가 많은 링크를 통과 것이기 때문에는, 그러므로 나는 sepearte의 CSV하지만 한 번 더 각 휴대폰의 설명을 저장하고 싶었 csv의 열 또한 괜찮을 것입니다.
모든 리드 !!!
코드에 대한 많은 감사를드립니다. 나는 거의 치료에 대한 자신감을 잃었고 lxml과 bs4의 경로로갔습니다. 새로운 사용자의 경우 ... item.py 파일은 별도이고 "cralwer"파일은 별도입니다. 또한 "craig_help.items import CraiglistSampleItem"을 cralwer에 추가 할 수 있습니다. 여기서 craig_help는 전체 프로젝트가 생성 된 폴더입니다. – LonelySoul
문제가 생겨서 죄송합니다. 그러나 "설명"열은 모두 비어있는 것 같습니다. 내가 항목과 크롤러에 대해 다른 파일을 만들어서 뭔가 잘못 했어. – LonelySoul
당신은 오신 것을 환영합니다. 물론, Item 클래스를 적절한 위치에 넣을 수 있습니다. 거기에 3 개의 필드가 있는지 확인하십시오 :'title','link' 및'description'. – alecxe