2012-06-05 24 views
16

Ví dụ: tôi có một trang web "www.example.com" Thực ra tôi muốn xóa html của trang này bằng cách lưu vào hệ thống cục bộ. nên để thử nghiệm tôi đã lưu trang đó trên máy tính để bàn của tôi như example.htmlcào tệp bằng html được lưu trong hệ thống cục bộ

Bây giờ tôi đã viết mã nhện cho điều này như sau

class ExampleSpider(BaseSpider): 
    name = "example" 
    start_urls = ["example.html"] 

    def parse(self, response): 
     print response 
     hxs = HtmlXPathSelector(response) 

Nhưng khi tôi chạy đoạn mã trên tôi đang nhận được lỗi này như sau

ValueError: Missing scheme in request url: example.html 

Cuối cùng tăng thêm của tôi là để cạo file example.html mà bao gồm mã www.example.com html lưu trong hệ thống địa phương của tôi

0.123.

Bất kỳ một thể gợi ý cho tôi về cách gán rằng tập tin example.html trong start_urls

Cảm ơn trước

+0

Bạn có thể bật phần mềm trung gian HTTP Cache sẽ lưu vào đĩa cứng của bạn. Về cơ bản bạn có thể phát lại một lần chạy trước đó, tùy thuộc vào thời gian chờ mà bạn đã đặt cho phần mềm trung gian HTTP Cache. –

+0

@ Sjaak Trekhaak: Cảm ơn bạn đã trả lời ur, bạn có thể cho tôi một ví dụ hay không, vì vậy nó hữu ích hơn –

+3

tôi không chắc chắn, nhưng bạn có thể thử: 'start_urls = [" file: /// home/local/cname/username/project/scrapy_project_modules/example/exampl‌ e.html "]' – warvariuc

Trả lời

-2

Nếu bạn xem mã nguồn của Yêu cầu scrapy ví dụ github. Bạn có thể hiểu những gì yêu cầu gửi đến máy chủ http và nhận được trang cần thiết để phản hồi từ máy chủ. Hệ thống tệp của bạn không phải là máy chủ http. Đối với mục đích thử nghiệm với cào, bạn phải thiết lập máy chủ http. Và sau đó bạn có thể gán url để scrapy như

http://127.0.0.1/example.html 
8

Bạn có thể sử dụng HTTPCacheMiddleware, mà sẽ cung cấp cho bạn khả năng để chạy nhện từ bộ nhớ cache. Tài liệu dành cho cài đặt HTTPCacheMiddleware nằm ở here.

Về cơ bản, thêm các thiết lập sau đây để settings.py của bạn sẽ làm cho nó hoạt:

HTTPCACHE_ENABLED = True 
HTTPCACHE_EXPIRATION_SECS = 0 # Set to 0 to never expire 

Tuy nhiên điều này đòi hỏi phải làm một chạy nhện ban đầu từ trang web để cư trú trong bộ nhớ cache.

17

Bạn có thể bò một tập tin địa phương sử dụng một địa chỉ có dạng sau:

file:///127.0.0.1/path/to/file.html 

Nó không yêu cầu một máy chủ http để được cài đặt trên máy tính của bạn.

+1

nó không hoạt động, nhưng file: ///path/to/file.html - làm –

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