Có thể thực hiện việc này. Việc thiết lập là ... không phải là rất đơn giản, nhưng kết quả cuối cùng là bạn có thể tìm kiếm toàn bộ trang web từ python với vài dòng mã.
Tổng cộng có 3 bước chính.
bước 1: có được Google API key
bang trang Các pygoogle 's:
Rất tiếc, Google không còn hỗ trợ API SOAP cho tìm kiếm, cũng không làm họ cung cấp mã bản quyền mới. Tóm lại, PyGoogle là khá nhiều người chết vào thời điểm này.
Bạn có thể sử dụng API AJAX của họ thay thế. Hãy xem mã mẫu ở đây: http://dcortesi.com/2008/05/28/google-ajax-search-api-example-python-code/
... nhưng bạn thực sự không thể sử dụng AJAX API. Bạn phải nhận khóa Google API. https://developers.google.com/api-client-library/python/guide/aaa_apikeys Để sử dụng thử nghiệm đơn giản, tôi đề xuất "khóa máy chủ".
Bước thứ hai: thiết lập Công cụ tìm kiếm tùy chỉnh để bạn có thể tìm kiếm toàn bộ trang web
Thật vậy, API cũ không khả dụng. API mới tốt nhất có sẵn là Tìm kiếm tùy chỉnh. Dường như với chỉ hỗ trợ tìm kiếm trong các lĩnh vực cụ thể, tuy nhiên, sau khi làm theo this SO answer bạn có thể tìm kiếm trên toàn bộ web:
- Từ trang chủ Google Custom Search (http://www.google.com/cse/), nhấp vào Tạo một Công cụ Tìm kiếm Tuỳ chỉnh.
- Nhập tên và mô tả cho công cụ tìm kiếm của bạn.
- Trong Xác định công cụ tìm kiếm của bạn, trong hộp Sites to Search, nhập ít nhất một URL hợp lệ (Hiện tại, chỉ cần đặt www.anyurl.com để nhận qua màn hình này. Thêm thông tin sau này).
- Chọn ấn bản CSE bạn muốn và chấp nhận Điều khoản dịch vụ, sau đó nhấp vào Tiếp theo. Chọn tùy chọn bố cục bạn muốn, rồi bấm Tiếp theo.
- Nhấp vào bất kỳ liên kết nào trong phần Bước tiếp theo để điều hướng đến bảng điều khiển của bạn.
- Trong menu bên trái, trong Bảng điều khiển, hãy nhấp vào Thông tin cơ bản.
- Trong phần Tùy chọn tìm kiếm, chọn Tìm kiếm trên toàn bộ web nhưng nhấn mạnh các trang web được bao gồm.
- Nhấp vào Lưu thay đổi.
- Trong menu bên trái, trong Bảng điều khiển, hãy nhấp vào Trang web.
- Xóa trang web bạn đã nhập trong quá trình thiết lập ban đầu.
Cách tiếp cận này cũng được đề nghị bởi Google: https://support.google.com/customsearch/answer/2631040
bước 3: cài đặt ứng dụng Google API cho Python
pip install google-api-python-client
, thông tin thêm ở đây:
bước thứ 4 (tiền thưởng): thực hiện tìm kiếm
Vì vậy, sau khi thiết lập này, bạn có thể làm theo các mẫu mã từ vài nơi:
và kết thúc với điều này:
from googleapiclient.discovery import build
import pprint
my_api_key = "Google API key"
my_cse_id = "Custom Search Engine ID"
def google_search(search_term, api_key, cse_id, **kwargs):
service = build("customsearch", "v1", developerKey=api_key)
res = service.cse().list(q=search_term, cx=cse_id, **kwargs).execute()
return res['items']
results = google_search(
'stackoverflow site:en.wikipedia.org', my_api_key, my_cse_id, num=10)
for result in results:
pprint.pprint(result)
Sau một vài tinh chỉnh bạn có thể viết một số chức năng y hệt như đoạn mã của bạn, nhưng tôi sẽ bỏ qua bước này đây.
Dường như Tìm kiếm tùy chỉnh trả về kết quả được lưu trong bộ nhớ cache không đồng bộ với các tìm kiếm mới nhất của Google? – Alex