Sử dụng Python để kiểm tra URL có được index hay không?

Thảo luận trong 'Thảo luận trợ giúp SEO' bắt đầu bởi cuongapple, 14/10/16.

Chuyên bán tài khoản VIP diễn đàn giảm giá cực sàn.

Lượt xem: 734

  1. Offline

    cuongapple New Member
    • 28/34

    Bài viết:
    549
    Google Search Console có thể giúp bạn xác định các trang của bạn có được index hay không. Hôm nay trong bài viết này tôi sẽ đưa ra một kịch bản để chứng minh điều đó.

    Có 3 thành phần chính trong tìm kiếm tự nhiên: crawl, index và xếp hạng. Khi một công cụ tìm kiếm đến trang web của bạn, nó thu thập tất cả các liên kết mà nó tìm thấy. Thông tin về những gì nó tìm thấy sẽ được đưa vào chỉ mục của công cụ tìm kiếm - đây là nơi mà các yếu tố khác nhau được sử dụng để xác định các trang cần lấy.

    [​IMG]

    Khi SEO, chúng ta có xu hướng tập trung nỗ lực của chúng ta vào các thành phần xếp hạng nhưng nếu một công cụ tìm kiếm không thể crawl và index các trang trên trang web của bạn, bạn sẽ không nhận được bất kỳ lưu lượng truy cập từ Google. Rõ ràng, việc đảm bảo trang web của bạn có được thu thập và index đúng là một phần quan trọng của SEO.

    Nhưng làm thế nào bạn có thể biết nếu trang web của bạn được index đúng cách?

    Nếu bạn có quyền truy cập vào Google Search Console, nó cho bạn biết bao nhiêu trang được chứa trong sitemap XML của bạn và bao nhiêu trong số chúng được index. Thật đáng tiếc là nó sẽ không thể cho bạn biết các trang không được index.

    [​IMG]
    Điều này có thể khiến bạn có rất nhiều phỏng đoán hoặc kiểm tra thủ công. Nó giống như kiểu tìm kim đáy bể. Điều này là không tốt. Hãy giải quyết vấn đề này một cách khéo léo với kỹ thuật nhỏ và một công cụ miễn phí của tôi.

    Xác định một URL duy nhất được index bởi Google

    Để xác định xem một URL riêng đã được index bởi Google, chúng ta có thể sử dụng toán tử tìm kiếm “info:” hay nói dễ hiểu hơn là gõ info:url của bạn vào google như ví dụ sau:
    Code:
    info:http://searchengineland.com/google-...anking-update-week-normal-fluctuations-258923
    Nếu URL được lập chỉ mục, kết quả sẽ hiển thị cho URL đó:

    [​IMG]

    Tuy nhiên, nếu URL không được lập chỉ mục, Google sẽ trả về một lỗi nói rằng không có thông tin có sẵn cho URL đó:

    [​IMG]
    Sử dụng Python để kiểm tra số lượng lớn các URL

    Khi chúng ta đã biết làm thế nào để kiểm tra xem một URL đã được index hay chưa, bạn có thể tự hỏi bạn có thể làm điều này như thế nào. Ví dụ nếu bạn có 1.000 công nhân cần phải kiểm tra mỗi ngày, nếu bạn thích bạn có thể sử dụng giải pháp Python của tôi:

    Mã:
    # Google says don't use this script: https://twitter.com/methode/status/783733724655517696
    # This script is a violation of Google Terms of Service. Don't use it.
    
    import requests
    import csv
    import os
    import time
    from bs4 import BeautifulSoup
    from urllib.parse import urlencode
    
    seconds = input('Enter number of seconds to wait between URL checks: ')
    output = os.path.join(os.path.dirname(__file__), input('Enter a filename (minus file extension): ')+'.csv')
    urlinput = os.path.join(os.path.dirname(__file__), input('Enter input text file: '))
    urls = open(urlinput, "r")
    
    proxies = {
    'https' : 'https://localhost:8123',
    'https' : 'http://localhost:8123'
    }
    
    user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
    headers = { 'User-Agent' : user_agent}
    
    f = csv.writer(open(output, "w+", newline="\n", encoding="utf-8"))
    f.writerow(["URL", "Indexed"])
    
    for line in iter(urls):
    query = {'q': 'info:' + line}
    google = "https://www.google.com/search?" + urlencode(query)
    data = requests.get(google, headers=headers, proxies=proxies)
    data.encoding = 'ISO-8859-1'
    soup = BeautifulSoup(str(data.content), "html.parser")
    try:
    check = soup.find(id="rso").find("div").find("div").find("h3").find("a")
    href = check['href']
    f.writerow([line,"True"])
    print(line + " is indexed!")
    except AttributeError:
    f.writerow([line,"False"])
    print(line + " is NOT indexed!")
    print("Waiting " + str(seconds) + " seconds until checking next URL.\n")
    time.sleep(float(seconds))
    urls.close()
    Để sử dụng kịch bản trên, hãy đảm bảo rằng bạn đã cài đặt Python 3. Bạn cũng sẽ cần phải cài đặt thư viện BeautifulSoup. Để làm điều này, mở thiết bị đầu cuối, tạo một tập tin văn bản với một danh sách các URL, liệt kê từng URL trên mỗi dòng riêng biệt.

    [​IMG]
    Bây giờ kịch bản của bạn đã sẵn sàng, chúng ta cần phải thiết lập Tor để chạy như proxy miễn phí của chúng tôi. Trên Windows, tải về Tor Expert Bundle. Giải nén thư mục zip vào một thư mục cục bộ và chạy tor.exe. Hãy thu nhỏ cửa sổ.

    [​IMG]

    Tiếp theo, chúng ta phải cài đặt Polipo để chạy Tor và HTTP proxy. Tải về Windows binary mới nhất (nó sẽ được đặt tên là "polipo-1.x.x.x-win32.zip") và giải nén vào một thư mục.

    Trong thư mục Polipo của bạn, tạo ra một tập tin văn bản (ví dụ: config.txt) với các nội dung sau đây:

    Mã:
    socksParentProxy = "localhost:9050"
    socksProxyType = socks5
    diskCacheRoot = ""
    disableLocalInterface=true
    Mở command prompt và điều hướng đến thư mục Polipo của bạn.

    Chạy lệnh sau đây:

    Mã:
    polipo.exe -c config.txt

    [​IMG]
    Tại thời điểm này, chúng tôi đã sẵn sàng để chạy script Python thực tế của chúng tôi:
    Code:
    python indexchecker.py

    [​IMG]
    Kịch bản sẽ nhắc bạn xác định số giây để chờ khi kiểm tra từng URL.

    Nó cũng sẽ nhắc bạn nhập tên tập tin (không có phần mở rộng tập tin) để xuất kết quả đến một tập tin CSV.

    Cuối cùng, nó sẽ yêu cầu tên tập tin của tập tin văn bản có chứa danh sách các URL để kiểm tra.

    Nhập thông tin này và để chạy script.

    Kết quả cuối cùng sẽ là một file CSV, có thể dễ dàng được mở trong Excel, xác định giá trị TRUE nếu một trang được index hoặc FALSE nếu nó không được index.

    [​IMG]
    Trong trường hợp kịch bản không làm việc, Google có thể chặn Tor. Hãy sử dụng dịch vụ proxy của riêng bạn bằng cách thay đổi các dòng sau trong kịch bản:

    Mã:
    proxies = {
    'https' : 'https://localhost:8123',
    'https' : 'http://localhost:8123'
    }
    Kết luận

    Việc biết được các trang được index bởi Google là rất quan trọng để SEO thành công. Bạn không thể nhận được lưu lượng từ Google nếu trang web của bạn đang không nằm trong cơ sở dữ liệu của Google.

    Thật đáng tiếc là việc xác định các URL được index trên một trang web là không dễ dàng. Nhưng với một vài thủ thuật và kịch bản Python trên, chúng ta có thể giải quyết vấn đề này.

    Ghi nguồn
    Mã:
    www.thegioiseo.com
     
    #1

Chia sẻ trang này

Chào mừng các bạn đến với diễn đàn học SEO chúc các bạn có những giây phút thật zui zẻ!
x