reppy

Phần mềm chụp màn hình:
reppy
Các chi tiết về phần mềm:
Phiên bản: 0.1.0
Ngày tải lên: 11 May 15
Nhà phát triển: Dan Lecocq
Giấy phép: Miễn phí
Phổ biến: 5

Rating: nan/5 (Total Votes: 0)

reppy bắt đầu ra của một thiếu sự hỗ trợ memoization trong phân tích cú pháp robots.txt khác gặp phải, và thiếu sự hỗ trợ cho Thu thập thông tin-sự chậm trễ và Sitemap trong robotparser được xây dựng trong.
Kết hợp
Gói này hỗ trợ các RFC 1996, cũng như các tính năng thường triển khai thực hiện bổ sung, như khớp ký tự đại diện, thu thập dữ liệu chậm trễ, và sitemap. Có nhiều cách tiếp cận khác nhau để phù hợp với phép và Disallow. Một cách tiếp cận là sử dụng các trận đấu dài nhất. Một là sử dụng cụ thể nhất. Gói này lựa chọn để thực hiện theo các chỉ thị đó là dài nhất, các giả định được rằng đó là một trong đó là cụ thể nhất - một thuật ngữ đó là một chút khó khăn để xác định trong bối cảnh này.

Sử dụng

Cách đơn giản nhất để sử dụng reppy là chỉ cần hỏi một URL hoặc các url được / được phép:
reppy nhập khẩu
# Điều này ngầm nạp robot.txt của example.com
reppy.allowed ('http://example.com/howdy')
# => Đúng
# Bây giờ, nó lưu trữ dựa trên khi nó phải hết hạn (đọc thêm trong `Expiration`)
reppy.allowed ('http://example.com/hello')
# => Đúng
# Nó cũng hỗ trợ các truy vấn hàng loạt
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# Hàng loạt các truy vấn thậm chí được hỗ trợ accross một số lĩnh vực (mặc dù lần nạp không được thực hiện song song)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Nó khá dễ dàng để sử dụng. Hành vi mặc định là để lấy nó cho bạn với urllib2
reppy nhập khẩu
# Thực hiện một đối tượng reppy liên kết với một tên miền cụ thể
r = reppy.fetch ('http://example.com/robots.txt')
nhưng bạn có thể chỉ là một cách dễ dàng phân tích một chuỗi mà bạn lấy.
urllib2 nhập khẩu
data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (dữ liệu)
Hết
Lợi thế chính của việc có reppy lấy robots.txt cho bạn là nó có thể tự động refetch sau khi dữ liệu của nó đã hết hạn. Đó là hoàn toàn minh bạch cho bạn, do đó bạn thậm chí không cần phải suy nghĩ về nó - chỉ cần tiếp tục sử dụng nó như bình thường. Hoặc, nếu bạn thích, bạn có thể thiết lập thời gian để sống riêng của mình, trong đó có ưu tiên:
reppy nhập khẩu
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Làm thế nào để sống lâu?)
r.expired ()
# => False (Có nó hết hạn?)
r.remaining ()
# => 10.798 (bao lâu cho đến khi nó hết hạn)
r = reppy.fetch ('http://example.com/robots.txt', ttl = 1)
# Chờ 2 giây
r.expired ()
# => Đúng
Truy vấn
Reppy cố gắng để theo dõi các máy chủ do đó bạn không phải. Điều này được thực hiện tự động khi bạn sử dụng lấy, hoặc bạn có thể tùy chọn cung cấp các url bạn lấy nó từ với phân tích cú pháp. Làm như vậy cho phép bạn cung cấp chỉ là con đường khi truy vấn. Nếu không, bạn phải cung cấp toàn bộ url:
# Điều này là khả thi
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ('/')
r.allowed (['/ hello', '/ howdy'])
# Và như vậy là điều này
data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (dữ liệu, url = 'http: //example.com/robots.txt')
r.allowed (['/', '/ hello', '/ howdy'])
# Tuy nhiên, chúng tôi không mặc nhiên biết Domain đây là những từ
reppy.allowed (['/', '/ hello', '/ howdy'])
Crawl-Delay và Sitemaps
Reppy cũng cho thấy nhiều phi RFC, nhưng sử dụng rộng rãi Crawl-Delay và Sitemaps thuộc tính. Việc chậm trễ thu thập dữ liệu được xem xét trên cơ sở mỗi người sử dụng đại lý, nhưng Sitemap này được coi là toàn cầu. Nếu họ không được chỉ định, sự chậm trễ thu thập dữ liệu là None, và sitemap là một danh sách rỗng. Ví dụ, nếu điều này là robots.txt của tôi:
User-agent: *
Thu thập thông tin trễ: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Sau đó, những có thể truy cập:
với file ('myrobots.txt', 'r') như f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent Matching
Bạn có thể cung cấp một tác nhân người dùng lựa chọn của bạn cho việc lấy robots.txt, và sau đó là chuỗi tác nhân người dùng, chúng tôi phù hợp với những gì được mặc định xuất hiện trước / đầu tiên. Ví dụ, nếu bạn cung cấp cho các đại lý người dùng là 'MyCrawler / 1.0', sau đó chúng tôi sẽ sử dụng 'MyCrawler' như chuỗi để phù hợp với User-agent. So sánh là trường hợp không nhạy cảm, và chúng tôi không hỗ trợ các kí hiệu trong User-Agent. Nếu mặc định này không phù hợp với bạn, bạn có thể cung cấp một thay thế:
# Điều này sẽ phù hợp với 'myuseragent' theo mặc định
r = reppy.fetch ('http://example.com/robots.txt', UserAgent = 'MyUserAgent / 1.0')
# Điều này sẽ phù hợp với 'someotheragent' thay vì
r = reppy.fetch ('http://example.com/robots.txt', UserAgent = 'MyUserAgent / 1.0', userAgentString 'someotheragent' =)
Path-Matching
Phù hợp với con đường hỗ trợ cả * và $

Tính năng :

  • Memoization của robots.txt lấy
  • Hết hạn lấy từ Hết hạn tiêu đề
  • truy vấn hàng loạt
  • đại lý người dùng cấu hình cho việc lấy robots.txt
  • tự động dựa trên refetching hết hạn
  • Hỗ trợ cho Crawl-delay
  • Hỗ trợ cho Sitemaps
  • hợp Wildcard

Yêu cầu :

  • Python

Phần mềm khác của nhà phát triển Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Ý kiến ​​để reppy

Bình luận không
Nhập bình luận
Bật hình ảnh!