2016-03-28 26 views
6

Tôi đang cố gắng lấy thông tin về một số lượng lớn các bài viết học thuật như là một phần của nghiên cứu của tôi. Số lượng bài viết là theo thứ tự của hàng nghìn bài viết. Vì Google Scholar không có API nên tôi đang cố gắng tìm kiếm/thu thập dữ liệu học giả. Bây giờ tôi bây giờ, rằng đây là kỹ thuật chống lại EULA, nhưng tôi đang cố gắng rất lịch sự và hợp lý về điều này. Tôi hiểu rằng Google không cho phép bot để giữ lưu lượng truy cập trong giới hạn hợp lý. Tôi bắt đầu với một lô thử nghiệm ~ 500 trăm yêu cầu với 1s ở giữa mỗi yêu cầu. Tôi đã bị chặn sau khoảng 100 yêu cầu đầu tiên. Tôi đã cố gắng nhiều chiến lược khác bao gồm:Thu thập thông tin Google Scholar

  1. Mở rộng tạm dừng để ~ 20s và thêm một số tiếng ồn ngẫu nhiên đối với họ
  2. Làm tạm dừng đăng nhập thường được phân phối (vì vậy mà hầu hết tạm dừng là vào thứ tự của giây nhưng tất cả bây giờ và sau đó có thời gian tạm dừng dài hơn vài phút trở lên)
  3. Thực hiện tạm dừng dài (vài giờ) giữa các khối yêu cầu (~ 100).

Tôi nghi ngờ rằng tại thời điểm này, tập lệnh của tôi đang thêm bất kỳ lưu lượng truy cập đáng kể nào trên bất kỳ con người nào. Nhưng theo cách này hay cách khác, tôi luôn bị chặn sau ~ 100-200 yêu cầu. Có ai biết về một chiến lược tốt để vượt qua điều này (tôi không quan tâm nếu nó mất vài tuần, miễn là nó được tự động). Ngoài ra, có ai có kinh nghiệm trực tiếp giao dịch với Google và xin phép làm điều gì đó tương tự (cho nghiên cứu, v.v.) không? Có đáng để viết chúng và giải thích những gì tôi đang cố gắng làm và làm thế nào, và xem liệu tôi có thể xin phép cho dự án của tôi không? Và tôi sẽ liên lạc với họ bằng cách nào? Cảm ơn!

+0

Tìm kiếm học thuật của microsoft tăng so với google như thế nào? –

+0

[điều này bổ sung cho cuộc thảo luận] (https://www.quora.com/Why-doesnt-Google-have-an-official-API-for-Google-Scholar) –

+1

Tôi hy vọng bạn đã đặt 'Người dùng- Đại lý' trong tiêu đề yêu cầu của bạn một cách chính xác - yêu cầu không đặt chính xác được dễ dàng phát hiện dưới dạng bot. :) –

Trả lời

1

Nếu không có thử nghiệm, tôi vẫn còn khá chắc chắn một trong những cách sau hiện các trick:

  1. dễ dàng, nhưng cơ hội nhỏ của thành công:

    Xóa tất cả cookie từ trang web trong câu hỏi sau mỗi yêu cầu rand (0,100),
    sau đó thay đổi tác nhân người dùng, ngôn ngữ được chấp nhận, v.v. và lặp lại. làm việc nhiều hơn

  2. Một chút, nhưng một con nhện chắc chắn hơn nhiều kết quả:

    Gửi yêu cầu của bạn thông qua Tor, proxy khác, các mạng di động, vv để che giấu IP của bạn (cũng làm gợi ý 1 ở mọi biến)

cập nhật về Selenium tôi đã bỏ lỡ một thực tế rằng bạn đang sử dụng Selenium, mất điều hiển nhiên đó là một số loại ngôn ngữ lập trình hiện đại chỉ (tôi biết rằng Selen có thể được điều khiển bởi các ngôn ngữ được sử dụng rộng rãi nhất, nhưng cũng là là một số loại trình cắm trình duyệt, đòi hỏi rất ít kỹ năng lập trình).

Khi tôi đoán các kỹ năng mã hóa của bạn không phải là (hay không?), Và đối với những người khác có cùng giới hạn khi sử dụng Selenium, câu trả lời của tôi là học một ngôn ngữ đơn giản, (PowerShell ?!) hoặc JavaScript (vì đó là trang web bạn đang truy cập ;-)) và mang nó từ đó.

Nếu quá trình tự động cào trơn tru đơn giản như trình cắm trình duyệt, web sẽ phải là một nơi đòi hỏi nhiều thứ lộn xộn, xáo trộn và ủy nhiệm.

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