607 8
SEO | – Đã đọc 13 phút – | 2 Tháng một, 2024 |
Nhận mã thông báo API của bạn
Bạn sẽ cần mã thông báo API trước khi có thể truy vấn API SERPSTAT. API này sẽ xuất hiện trên bất kỳ trang tài liệu nào, chẳng hạn như trang trang API chính, như hình dưới đây:
Sau khi sao chép mã thông báo API của mình, bạn có thể sử dụng mã thông báo này khi khởi động sổ ghi chép Jupyter iPython của mình.
Bắt đầu Notebook Jupyter iPython của bạn
Tất cả mã Python sẽ được thực thi trong môi trường sổ ghi chép Jupyter iPython. Tương tự, mã sẽ chạy trong sổ ghi chép COLAB nếu đó là tùy chọn của bạn. Khi bạn đã thiết lập và chạy nó, hãy nhập các hàm có trong thư viện:
yêu cầu nhập khẩu
gấu trúc nhập khẩu như pd
nhập numpy dưới dạng np
nhập khẩu json
từ nhập khẩu âm mưu *
Để thực hiện lệnh gọi API, bạn sẽ cần thư viện yêu cầu.
Để xử lý các khung dữ liệu, tương tự như Excel trong Python, chúng tôi sẽ sử dụng Python và gán 'pd' làm bí danh tốc ký, đơn giản hóa việc sử dụng các hàm pandas. Chúng tôi cũng sẽ sử dụng Numpy, viết tắt là 'np' để thao tác dữ liệu trong khung dữ liệu.
Dữ liệu từ API thường ở định dạng từ điển, vì vậy JSON sẽ giúp chúng tôi giải nén kết quả thành các cấu trúc dữ liệu mà chúng tôi có thể đẩy vào khung dữ liệu.
api_token = ‘khóa api của bạn’
Điều này đã đạt được trước đó (xem ở trên).
api_url_pattern = 'https://api.serpstat.com/v{version}?token={token}'
Chúng tôi sẽ đặt mẫu URL cho phép chúng tôi truy vấn các điểm cuối khác nhau của API Serpstat. Phiên bản hiện tại là APIv4. Vì bạn sẽ gọi giao diện lập trình ứng dụng một vài lần nên điều này sẽ giúp tránh việc gõ mã lặp đi lặp lại.
api_url = api_url_pattern.format(version=4, token=api_token)
Đặt URL API để kết hợp phiên bản API và mã thông báo API của bạn.
Nhận từ khóa tên miền
Phần thú vị. Bây giờ chúng tôi có thể trích xuất từ khóa cho bất kỳ tên miền nào được hiển thị bằng cách truy vấn Từ khóa tên miền điểm cuối. Điều này sẽ hiển thị tất cả các từ khóa mà một tên miền xếp hạng trong top 100 cho một công cụ tìm kiếm nhất định.
Chúng tôi bắt đầu bằng cách đặt các tham số đầu vào mà API yêu cầu:
domain_keyword_params = {
"id": "1",
"method": "SerpstatDomainProcedure.getDomainKeywords",
"params": {
"domain": "deel.com",
"se": "g_uk",
"withSubdomains": False,
"sort": {
"region_queries_count": "desc"
},
"minusKeywords": [
"deel", "deels"
],
"size": "1000",
"filters": {
"right_spelling": False
}
}
}
Một điều cần lưu ý: điểm cuối Từ khóa tên miền được truy cập bằng cách đặt phương thức thành “SerpstatDomainProcedure.getDomainKeywords”
Bạn sẽ cần đặt tên miền của mình "lãnh địa" bên dưới và công cụ tìm kiếm của bạn bên dưới “g_uk”.
Trong trường hợp của chúng tôi, chúng tôi sẽ xem xét các từ khóa của deel.com trong Google UK. Có sẵn danh sách đầy đủ các công cụ tìm kiếm tại đây bao gồm các khu vực trên toàn thế giới của Google và Bing US.
Các tùy chọn bổ sung bao gồm từ khóa trừ (kết hợp phủ định), trong trường hợp của chúng tôi, chúng tôi chỉ quan tâm đến các từ khóa không phải thương hiệu để hiểu lưu lượng truy cập không phải trả tiền đến từ đâu.
Chúng tôi cũng đã thiết lập "kích thước" tham số thành 1,000 là đầu ra hàng tối đa có thể.
Có các tham số thú vị khác như khả năng hạn chế API bao gồm các từ khóa nhất định ("Từ khóa") hoặc URL trang web trong tên miền (“url”).
Với bộ tham số, chúng ta có thể thực hiện yêu cầu bằng mã bên dưới:
domain_keyword_resp = requests.post(api_url, json=domain_keyword_params)
if domain_keyword_resp.status_code == 200:
domain_keyword_result = domain_keyword_resp.json()
print(domain_keyword_result)
else:
print(domain_keyword_resp.text)
Kết quả của lệnh gọi API được lưu trữ trong miền_keyword_resp. Chúng ta sẽ đọc phản hồi bằng hàm json, lưu trữ dữ liệu vào tên miền_keyword_result.
Cấu trúc if else được sử dụng để cung cấp cho bạn thông tin trong trường hợp lệnh gọi API không hoạt động như mong đợi, cho bạn biết phản hồi API là gì nếu không có dữ liệu hoặc lỗi thực hiện lệnh gọi.
Chạy in cuộc gọi tên miền_keyword_result trông như thế này:
{'id': '1',
'result':
{'data': [
{'domain': 'deel.com', 'subdomain': 'www.deel.com', 'keyword':
'support for dell', 'keyword_length': 3, 'url': 'https://www.deel.com/',
'position': 73, 'types': ['pic', 'kn_graph_card', 'related_search',
'a_box_some', 'snip_breadcrumbs'], 'found_results': 830000000,
'cost': 0.31, 'concurrency': 3, 'region_queries_count': 33100,
'region_queries_count_wide': 0, 'geo_names': [], 'traff': 0,
'difficulty': 44.02206115387234, 'dynamic': None},
{'domain': 'deel.com', 'subdomain': 'www.deel.com',
'keyword': 'hr and go',
'keyword_length': 3, 'url': 'https://www.deel.com/',
'position': 67, 'types': ['related_search', 'snip_breadcrumbs'],
'found_results': 6120000000, 'cost': 0.18, 'concurrency': 4,
'region_queries_count': 12100, 'region_queries_count_wide': 0,
'geo_names': [], 'traff': 0, 'difficulty': 15.465889053157944,
'dynamic': 3},
Khi làm việc với bất kỳ API nào, điều quan trọng là phải in cấu trúc dữ liệu để bạn biết cách phân tích cú pháp dữ liệu thành định dạng có thể sử dụng được. Không phải điều đó tạo ra một từ điển có nhiều khóa, trong đó dữ liệu chúng ta muốn được chứa trong các khóa dữ liệu kết quả. Các giá trị của dữ liệu nằm trong danh sách các từ điển trong đó mỗi từ điển đại diện cho một từ khóa.
Chúng tôi đã tạo mã bên dưới để trích xuất dữ liệu từ tên miền_keyword_result và đẩy nó đến tên miền_keyword_df khung dữ liệu:
domain_keyword_df = pd.DataFrame(domain_keyword_result['result']['data'])
Hãy hiển thị khung dữ liệu:
hiển thị(domain_keyword_df)
Trông giống như sau:
Khung dữ liệu hiển thị tất cả các từ khóa cho tên miền lên tới tối đa 1,000 hàng. Nó chứa các trường cột như:
- vùng_queries_count: lượng tìm kiếm trong khu vực mục tiêu của bạn
- url: URL xếp hạng cho từ khóa
- vị trí: thứ hạng SERP
- loại: Tính năng SERP
- đồng thời: số lượng quảng cáo tìm kiếm có trả tiền có thể cho biết mức độ giao dịch và/hoặc mục đích thương mại.
Nếu bạn muốn nhiều hơn vì bạn đang làm việc trên một trang web lớn hơn, bạn có thể:
2.Chạy nhiều cuộc gọi Từ khóa miền bằng cách sử dụng mã ở trên trên các URL trang web đó như một phần của vòng lặp for trong đó chỉ định URL làm tham số đầu vào cho 'url'.
Tạo tính năng dữ liệu
Để biết thông tin chi tiết, chúng tôi muốn tạo một số tính năng hỗ trợ tóm tắt dữ liệu thô. Theo cách tốt nhất, chúng tôi sẽ tạo một bản sao của khung dữ liệu và lưu nó vào khung dữ liệu mới có tên dk_enhanced_df.
dk_enhanced_df = domain_keyword_df.copy()
Đặt một cột mới gọi là 'đếm' sẽ cho phép chúng ta đếm mọi thứ theo đúng nghĩa đen như bạn sẽ thấy sau.
dk_enhanced_df['đếm'] = 1
Chúng tôi cũng muốn tạo một cột tùy chỉnh có tên là 'serp' cho biết danh mục trang SERP có thể hữu ích để xem sự phân bổ vị trí trang web theo SERP và được đưa vào báo cáo trang tổng quan.
<code data-code="dk_enhanced_df['serp'] = np.where(dk_enhanced_df['position'] dk_enhanced_df['serp'] = np.ở đâu(dk_enhanced_df['Chức vụ'] < 11, '1', 'Hư không') dk_enhanced_df['serp'] = np.ở đâu(dk_enhanced_df['Chức vụ'].giữa(11, 20), '2', dk_enhanced_df['serp']) dk_enhanced_df['serp'] = np.ở đâu(dk_enhanced_df['Chức vụ'].giữa(21, 30), '3', dk_enhanced_df['serp']) dk_enhanced_df['serp'] = np.ở đâu(dk_enhanced_df['Chức vụ'].giữa(31, 99), '4+', dk_enhanced_df['serp'])
SERP đã được mã hóa ở trên bằng cách sử dụng numpy.where giống như phiên bản Python của câu lệnh if Excel quen thuộc hơn.
Nếu bạn lưu ý cột loại, các giá trị sẽ chứa danh sách các loại kết quả tìm kiếm chung được hiển thị trên công cụ tìm kiếm cho từ khóa.
Chúng ta có thể giải nén điều này và làm cho việc phân tích dễ dàng hơn bằng cách sử dụng mã hóa một nóng (OHE) kỹ thuật. OHE sẽ tạo các cột cho tất cả các giá trị loại kết quả và đặt số 1 ở nơi có kết quả cho từ khóa:
type_dummies = pd.get_dummies(dk_enhanced_df['types'].apply(pd.Series).stack()).
tổng (cấp=0)
Ghép các cột loại kết quả được mã hóa một lần với dk_enhanced_df Khung dữ liệu
dk_enhanced_df = pd.concat([dk_enhanced_df.drop(columns=['types']), type_dummies], axis=1)
hiển thị(dk_enhanced_df)
Nhờ OHE và các cải tiến khác, giờ đây chúng tôi có khung dữ liệu mở rộng với các cột giúp phân tích và tạo thông tin chi tiết dễ dàng hơn.
Bắt đầu hành trình SEO của bạn với sự tự tin!
Đăng ký dùng thử 7 ngày của chúng tôi và đi sâu vào thế giới phân tích SEO nâng cao bằng API của chúng tôi. Không có cam kết, chỉ là thăm dò thuần túy.
Khám phá dữ liệu từ khóa tên miền
Chúng ta sẽ bắt đầu bằng cách xem xét các thuộc tính thống kê của dữ liệu từ khóa tên miền bằng cách sử dụng diễn tả() chức năng:
dk_enhanced_df.describe()
Hàm lấy tất cả các cột số trong khung dữ liệu để ước tính các thuộc tính thống kê của chúng như giá trị trung bình (trung bình), độ lệch chuẩn (std) để đo tốc độ phân tán so với giá trị trung bình, số lượng điểm dữ liệu (số lượng) và phần trăm như thứ 25 (25%) như được hiển thị ở trên.
Mặc dù chức năng này hữu ích như một bản tóm tắt, nhưng từ góc độ kinh doanh, việc tổng hợp dữ liệu thường hữu ích. Ví dụ, sử dụng sự kết hợp của chia nhóm và bồ kết chúng ta có thể đếm có bao nhiêu từ khóa trên SERP 1, v.v. bằng cách sử dụng mã bên dưới:
serp_agg = dk_enhanced_df.groupby('serp').agg({'count': 'sum'}).reset_index()
Hàm nhóm nhóm khung dữ liệu theo cột (giống như bảng Excel Pivot), sau đó tổng hợp các cột khác. Trong trường hợp sử dụng của chúng tôi, chúng tôi nhóm theo SERP để đếm xem có bao nhiêu từ khóa trong mỗi SERP như được hiển thị bên dưới:
hiển thị(serp_agg)
Hầu hết các từ khóa nằm ngoài trang 3 như được hiển thị bằng giá trị đếm 861 cho SERP 4+.
Nếu chúng tôi muốn trực quan hóa dữ liệu cho đối tượng không phải là chuyên gia SEO, chúng tôi có thể sử dụng các hàm ggplot của cốt truyện:
serp_dist_plt = (ggplot(serp_agg,
aes(x = 'serp', y = 'count')) +
geom_bar(stat = 'identity', alpha = 0.8, fill = 'blue') +
labs(y = 'SERP', x = '') +
theme_classic() +
theme(legend_position = 'none')
)
ggplot lấy 2 đối số chính là khung dữ liệu và tính thẩm mỹ (aes). aes chỉ định các phần của khung dữ liệu sẽ được ánh xạ lên biểu đồ. Các lớp bổ sung được thêm vào mã để xác định loại biểu đồ, nhãn trục, v.v. Trong trường hợp của chúng tôi, chúng tôi đang sử dụng geom_bar là biểu đồ thanh.
Mã được lưu vào đối tượng biểu đồ serp_dist_plt mà khi chạy sẽ hiển thị biểu đồ:
serp_dist_plt
Biểu đồ được tạo ra sẽ tạo ra một phiên bản trực quan của serp_agg dataframe, giúp so sánh số lượng vị trí từ khóa giữa các SERP dễ dàng hơn nhiều.
Thông tin chi tiết về đối thủ từ từ khóa tên miền
Mặc dù điều này thật tuyệt vời nhưng các con số cho một tên miền trang web không sâu sắc bằng khi so sánh với các trang web khác cạnh tranh trong cùng một không gian tìm kiếm. Trong ví dụ trên, deel.com có 14 từ khóa trong SERP 1. Điều đó có tốt không? Xấu? Trung bình? Làm sao chúng ta có thể biết được?
Dữ liệu miền cạnh tranh bổ sung bối cảnh và ý nghĩa đó, đây là trường hợp sử dụng tốt để chi tiêu các khoản tín dụng API đó. Bằng cách điều chỉnh mã ở trên, chúng tôi có thể lấy dữ liệu trên một số miền để thu được dữ liệu có ý nghĩa hơn.
Ví dụ: sau khi sử dụng cùng một điểm cuối API trên các trang web của đối thủ cạnh tranh hoạt động trong cùng một không gian, giờ đây chúng tôi có một bảng hiển thị số lượng từ khóa theo SERP cho mỗi tên miền:
Ở định dạng trực quan hơn, chúng tôi nhận được:
Với bối cảnh được bổ sung, chúng ta có thể thấy rằng Deel có thể hoạt động kém hơn trên SERP 1 so với các đối thủ cạnh tranh khác. Chúng ta cũng có thể thấy rằng Bamboo HR đang dẫn đầu, tiếp theo là remote.com. Trên thực tế, Bamboo là trang duy nhất có nhiều SERP 1 hơn SERP 2.
Với API, chúng tôi không chỉ có thể chắt lọc các xu hướng từ dữ liệu mà còn có dữ liệu thực tế để xem những từ khóa SERP nào đang hỗ trợ khả năng hiển thị của Bamboo. Trong Python, đó sẽ là:
tre_serp_1s = mdk_enhanced_df.loc[mdk_enhanced_df['domain'] == 'bamboohr.com'].copy()
Ở trên lấy khung dữ liệu với dữ liệu API kết hợp cho các miền và bộ lọc cho miền là trehr.com
hiển thị(tre_serp_1s)
Sau đó, điều này có thể được xuất sang Excel cho mục đích lập kế hoạch nội dung.
Thông tin chi tiết về từ khóa tên miền khác
Mã cho đến nay tập trung vào việc trích xuất dữ liệu từ API từ khóa tên miền và cho thấy chỉ một cột có thể tạo ra thông tin chi tiết về một tên miền và nhiều tên miền như thế nào.
Có thể tạo thêm bao nhiêu thông tin chi tiết từ việc khám phá các cột khác và so sánh các tên miền của đối thủ cạnh tranh trong điểm cuối Từ khóa tên miền. Đó là trước khi chúng tôi bắt đầu sử dụng các điểm cuối khác được cung cấp cho chúng tôi từ API SERPSTAT.
Ví dụ: loại kết quả nào đang xuất hiện nhiều nhất? Các loại kết quả nhất định có tăng theo thời gian có thể giúp chúng tôi hiểu xu hướng của Google không? Đoạn mã giải nén cột loại kết quả ở trên sẽ giúp bạn bắt đầu.
Ý kiến của các tác giả bài đăng của khách có thể không trùng với ý kiến của ban biên tập Serpstat và các chuyên gia.
Tìm thấy một lỗi? Chọn nó và nhấn Ctrl + Enter để cho chúng tôi biết
Khám phá thêm các công cụ SEO
Công cụ kiểm tra backlink
kiểm tra backlink cho bất kỳ trang web nào. Tăng sức mạnh của hồ sơ backlink của bạn
API cho SEO
Tìm kiếm dữ liệu lớn và nhận kết quả bằng cách sử dụng API SEO
Bài viết được đề xuất
Bạn không có thời gian để theo dõi tin tức? Đừng lo lắng! Biên tập viên của chúng tôi sẽ chọn những bài báo chắc chắn sẽ giúp ích cho công việc của bạn. Tham gia cộng đồng ấm cúng của chúng tôi 🙂
Bằng cách nhấp vào nút, bạn đồng ý với chúng tôi Chính sách bảo mật.
Bạn có chắc không?
Cảm ơn bạn, chúng tôi đã lưu cài đặt gửi thư mới của bạn.
Báo cáo lỗi
Đang tải, vui lòng đợi ...
- Phân phối nội dung và PR được hỗ trợ bởi SEO. Được khuếch đại ngay hôm nay.
- PlatoData.Network Vertical Generative Ai. Trao quyền cho chính mình. Truy cập Tại đây.
- PlatoAiStream. Thông minh Web3. Kiến thức khuếch đại. Truy cập Tại đây.
- Trung tâmESG. Than đá, công nghệ sạch, Năng lượng, Môi trường Hệ mặt trời, Quản lý chất thải. Truy cập Tại đây.
- PlatoSức khỏe. Tình báo thử nghiệm lâm sàng và công nghệ sinh học. Truy cập Tại đây.
- nguồn: https://serpstat.com/blog/competitor-keywords-api-with-python