2012-06-08 23 views
7
  1. Ví dụ: nếu có hai URL chứa HTML khác nhau. Bây giờ tôi muốn viết hai con nhện riêng lẻ cho một và muốn chạy cả hai con nhện cùng một lúc. Trong phế liệu là nó có thể chạy nhiều nhện cùng một lúc.Chạy Nhiều trình thu thập dữ liệu ở dạng cắt ngang

  2. Trong scrapy sau khi viết nhiều nhện, làm thế nào chúng ta có thể lên lịch để chạy cho mỗi 6 giờ (Có thể là như cron)

tôi không có ý tưởng về ở trên, u có thể gợi ý cho tôi làm thế nào để thực hiện những điều trên với một ví dụ.

Xin cảm ơn trước.

Trả lời

2

Có lẽ sẽ dễ dàng nhất để chỉ chạy hai tập lệnh thô ráp cùng một lúc từ cấp hệ điều hành. Cả hai đều có thể lưu vào cùng một cơ sở dữ liệu. Tạo một kịch bản shell để gọi cả hai kịch bản scrapy để làm cho họ cùng một lúc:

scrapy runspider foo & 
scrapy runspider bar 

Hãy chắc chắn để làm cho kịch bản thực thi này với chmod +x script_name

Để sắp xếp một cronjob mỗi 6 giờ, gõ crontab -e vào thiết bị đầu cuối của bạn và chỉnh sửa tệp như sau:

* */6 * * * path/to/shell/script_name >> path/to/file.log 

Lần đầu tiên * là phút, sau đó giờ, v.v ... và asterik là ký tự đại diện. Vì vậy, điều này nói chạy kịch bản bất cứ lúc nào mà giờ chia hết cho 6 hoặc sáu giờ một lần.

+0

Cảm ơn bạn rất nhiều vì đã trả lời, đừng bận tâm tôi hỏi điều này, bạn có thể đưa ra một mã ví dụ cho điều này để nó được trợ giúp nhiều hơn không. Tôi có thể làm thêm nó –

1

Bạn có thể thử sử dụng CrawlerProcess

from scrapy.utils.project import get_project_settings 
from scrapy.crawler import CrawlerProcess 

from myproject.spiders import spider1, spider2 

1Spider = spider1.1Spider() 
2Spider = spider2.2Spider() 
process = CrawlerProcess(get_project_settings()) 
process.crawl(1Spider) 
process.crawl(2Spider) 
process.start() 

Nếu bạn muốn xem toàn bộ nhật ký của thu thập dữ liệu, thiết lập LOG_FILE trong settings.py của bạn.

LOG_FILE = "logs/mylog.log" 
+0

Cảm ơn, nó hoạt động tốt. – VAdaihiep

0

Ở đây mã cho phép bạn chạy nhiều trình thu thập thông tin trong mẩu tin lưu niệm. Lưu mã này tại cùng thư mục với scrapy.cfg (Phiên bản của tôi là phiên bản 1.3.3 và nó hoạt động):

from scrapy.utils.project import get_project_settings 
from scrapy.crawler import CrawlerProcess 

setting = get_project_settings() 
process = CrawlerProcess(setting) 

for spider_name in process.spiders.list(): 
    print ("Running spider %s" % (spider_name)) 
    process.crawl(spider_name,query="dvh") #query dvh is custom argument used in your scrapy 

process.start() 

và sau đó bạn có thể lên lịch chương trình python này để chạy với cronjob.

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