Scrapy for Python으로 스크래퍼를 코딩하려고합니다. 이 시점에서 나는 웹 페이지의 이름과 페이지 내의 모든 아웃 바운드 링크를 얻으려고합니다.Scrapy에서 응답 요소를 루프하는 방법은 무엇입니까?
이from scrapy.spider import Spider
from scrapy import Selector
from socialmedia.items import SocialMediaItem
class MySpider(Spider):
name = 'smm'
allowed_domains = ['*']
start_urls = ['http://en.wikipedia.org/wiki/Social_media']
def parse(self, response):
items =[]
for link in response.xpath("//a"):
item = SocialMediaItem()
item['title'] = link.xpath('text()').extract()
item['link'] = link.xpath('@href').extract()
items.append(item)
yield items
는 사람이 결과를 얻을하는 데 도움 수 : 출력은 내가이 코드를 만든이
{'link': [u'Link1'], 'title': [u'Page title']}
같은 사전되어야 하는가? 이 페이지의 코드를 변경했습니다. http://mherman.org/blog/2012/11/05/scraping-web-pages-with-scrapy/
비추천 기능이없는 코드를 업데이트했습니다. 정말 고마워요! 대니
감사 alecxe. 'yield'를 사용할 때이 오류가 발생합니다. 2014-11-28 18 : 31 : 30 + 0100 [smm] 오류 : Spider가 Request, BaseItem 또는 None을 반환해야합니다.를 참조하십시오. 'return'을 사용할 때 오류는 발생하지 않지만 파일에는 아무 것도 저장하지 않습니다. 어떻게 링크 추출기를 사용 하시겠습니까? 코드를 업데이트했습니다. –
@DaniValverde 제공 한 정확한'parse()'메서드를 사용하십시오. 오류가 발생하지 않습니다. – alecxe
감사합니다 alecxe, 내가 그것을 사용 처음 오류가 발생했습니다. –