확인 웹 페이지에서 URL을 추출, 그래서 난 Scrapy을 사용하고 있습니다. 나는 현재 "snipplr.com/all/page"를 긁어서 페이지의 URL을 추출하려고합니다. 그런 다음 URL을 추출하기 위해 스파이더를 다시 실행할 때 CSV 파일을 읽음으로써 추출 된 URL을 필터링합니다. 그것은 계획 이었지만 어쨌든 결과를 무시하는 오류가 발생했습니다.Scrapy 필터 중복
프로세스 : 그러나
import scrapy
import csv
from scrapycrawler.items import DmozItem
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.http import Request
class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["snipplr.com"]
def start_requests(self):
#for i in xrange(1000):
for i in range(2, 5):
yield self.make_requests_from_url("http://www.snipplr.com/all/page/%d" % i)
def parse(self, response):
for sel in response.xpath('//ol/li/h3'):
item = DmozItem()
#item['title'] = sel.xpath('a/text()').extract()
item['link'] = sel.xpath('a[last()]/@href').extract()
#item['desc'] = sel.xpath('text()').extract()
reader = csv.reader(open('items.csv', 'w+')) #think it as a list
for row in reader:
if item['link'] == row:
raise IgnoreRequest()
else:
f = open('items.csv', 'w')
f.write(item[link'])
yield item
, 내가받을 : 링크에 대한 크롤링 웹 페이지>
스파이더 코드 이미 IgnoreRequest/dropItem 다른 CSV 파일에 추가하는 경우 이미> 과거에 추출 된 경우 CSV는 파일 확인 서로에게 다음 번에 오버라이드 (override)하는 이런 이상한 결과가 나는 diffrent 페이지를 크롤링 대신, 내가 파일에 결과를 추가 찾고,하지 오버라이드 (override)
clock/
/view/81327/chatting-swing-gui-tcp/
/view/82731/automate-system-setup/
/view/81215/rmi-factorial/
/view/81214/tcp-addition/
/view/81213/hex-octal-binary-calculator/
/view/81188/abstract-class-book-novel-magazine/
/view/81187/data-appending-to-file/
/view/81186/bouncing-ball-multithreading/
/view/81185/stringtokenizer/
/view/81184/prime-and-divisible-by-3/
/view/81183/packaging/
/view/81182/font-controller/
/view/81181/multithreaded-server-and-client/
/view/81180/simple-calculator/
/view/81179/inner-class-program/
/view/81114/cvv-dumps-paypals-egift-cards-tracks-wu-transfer-banklogins-/
/view/81038/magento-social-login/
/view/81037/faq-page-magento-extension/
/view/81036/slider-revolution-responsive-magento-extension/
/view/81025/bugfix-globalization/
코드에 오류가있을 수 있으므로 필요에 따라 코드를 수정하여 수정하십시오. 도움을 주셔서 감사합니다.
편집 : 오타
이, 잘 작동 파이프 라인과 미들웨어의 차이점, 나는 둘 다 같은 코드로 같은 기능을 수행 할 수있는 전두엽인가? – CharlieC
@CharlieC 파이프 라인은 거미에서 반환 된 크롤링 된 항목을 후 처리합니다. 데이터베이스에 항목을 저장하는 데 사용됩니다. 미들웨어는 요청/응답 수준에서 작동합니다. 희망을 조금 지워줍니다. – alecxe
아 내가, 내가 보는 정보 – CharlieC