2014-07-17 22 views
6

Tôi đang sử dụng Python.org phiên bản 2.7 64 bit trên Windows Vista 64 bit. Tôi đã được thử nghiệm mã Scrapy sau để đệ quy cạo tất cả các trang tại khu vực này www.whoscored.com, mà là cho các thống kê bóng đá:HTTP 403 Câu trả lời khi sử dụng Python Scrapy

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.selector import Selector 
from scrapy.item import Item 
from scrapy.spider import BaseSpider 
from scrapy import log 
from scrapy.cmdline import execute 
from scrapy.utils.markup import remove_tags 


class ExampleSpider(CrawlSpider): 
    name = "goal3" 
    allowed_domains = ["whoscored.com"] 
    start_urls = ["http://www.whoscored.com/"] 
    rules = [Rule(SgmlLinkExtractor(allow=()), 
        follow=True), 
      Rule(SgmlLinkExtractor(allow=()), callback='parse_item') 
    ] 
    def parse_item(self,response): 
     self.log('A response from %s just arrived!' % response.url) 
     scripts = response.selector.xpath("normalize-space(//title)") 
     for scripts in scripts: 
      body = response.xpath('//p').extract() 
      body2 = "".join(body) 
      print remove_tags(body2).encode('utf-8') 


execute(['scrapy','crawl','goal3']) 

Mã này được thực hiện mà không cần bất kỳ lỗi nào, tuy nhiên trong những 4623 trang cạo , 217 có mã phản hồi HTTP là 200, 2 có mã 302 và 4404 nhận được phản hồi 403. Bất cứ ai có thể nhìn thấy bất cứ điều gì ngay lập tức rõ ràng trong mã là tại sao điều này có thể được? Đây có phải là biện pháp chống lừa đảo từ trang web không? Thực hành thông thường có làm chậm số lần gửi để ngăn điều này xảy ra không?

Cảm ơn

Trả lời

12

HTTP Status Code chắc chắn có nghĩa Forbidden/Access Denied.
Mã trạng thái HTTP 302 là để chuyển hướng các yêu cầu. Không cần phải lo lắng về chúng.
Không có gì có vẻ sai trong mã của bạn.

Có, đó là chắc chắn là biện pháp chống xước được trang web triển khai.

Tham khảo những hướng dẫn từ Scrapy Documents: Avoid Getting Banned

Ngoài ra, bạn nên xem xét pausing and resuming crawls.

+0

cảm ơn bạn đã trả lời ... vâng, tôi e rằng nó sẽ là thứ gì đó có liên quan đến việc cạo. tôi sẽ đọc những tài liệu đó ngay bây giờ. cảm ơn. – gdogg371

Các vấn đề liên quan