Python quét số điện thoại

Phát triển Google Maps cạp và duy trì nó có thể đòi hỏi rất nhiều thời gian và công sức. Do đó, nhiều nhóm kỹ thuật thấy có lợi cho họ khi tập trung vào lĩnh vực chính của họ và sử dụng Outscraper Platfom làm nguồn dữ liệu đáng tin cậy cho các ứng dụng của họ

Quét Google Maps bằng cách sử dụng SDK

1. Bạn sẽ cần python3+ và gói python này. Cài đặt gói bằng cách chạy lệnh sau

Python là một ngôn ngữ lập trình mạnh mẽ, dễ học. Nó có cấu trúc dữ liệu cấp cao hiệu quả và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp tao nhã và kiểu gõ động của Python, cùng với bản chất diễn giải của nó, làm cho nó trở thành ngôn ngữ lý tưởng để viết kịch bản và phát triển ứng dụng nhanh chóng trong nhiều lĩnh vực trên hầu hết các nền tảng

Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn miễn phí ở dạng nguồn hoặc nhị phân cho tất cả các nền tảng chính từ trang web Python, https. //www. con trăn. org/, và có thể được phân phối tự do. Trang web tương tự cũng chứa các bản phân phối và con trỏ tới nhiều mô-đun, chương trình và công cụ Python miễn phí của bên thứ ba và tài liệu bổ sung

Trình thông dịch Python dễ dàng mở rộng với các hàm và kiểu dữ liệu mới được triển khai trong C hoặc C++ [hoặc các ngôn ngữ khác có thể gọi được từ C]. Python cũng phù hợp làm ngôn ngữ mở rộng cho các ứng dụng có thể tùy chỉnh

Hướng dẫn này giới thiệu cho người đọc một cách không chính thức các khái niệm và tính năng cơ bản của ngôn ngữ và hệ thống Python. Sẽ rất hữu ích khi có một trình thông dịch Python tiện dụng cho trải nghiệm thực hành, nhưng tất cả các ví dụ đều độc lập, vì vậy hướng dẫn cũng có thể được đọc ngoại tuyến

Tập lệnh sẽ sử dụng các biểu thức chính quy để xác định các mẫu khớp với cấu trúc của địa chỉ email và số điện thoại. Nếu mẫu khớp, tập lệnh sẽ trích xuất thông tin liên quan từ trang web. Đến cuối hướng dẫn này, bạn sẽ có một tập lệnh hoạt động có thể loại bỏ email và số điện thoại từ một trang web một cách nhanh chóng và hiệu quả. Hãy bắt đầu nào

Bước 1. Tạo tập tin python

Để bắt đầu, hãy tạo một tệp Python mới có tên email_phone_scrap. py. Sau đó, nhập các thư viện cần thiết mà chương trình của bạn sẽ cần. Chương trình của bạn sẽ giống như ví dụ sau

# email_phone_scrap.py - Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
import re   # for regular expressions
import requests  # for opening web page

Bước 2. Xây dựng biểu thức chính quy cho số điện thoại

Để tìm kiếm số điện thoại, bạn sẽ cần tạo một biểu thức chính quy. Một số điện thoại điển hình được chia thành ba phần. mã vùng [thường là ba chữ số], ba chữ số đầu tiên và bốn chữ số cuối cùng. Các phần này được phân tách bằng ký hiệu, chẳng hạn như dấu gạch ngang hoặc dấu cách. Ví dụ 122-456-7890. Để tạo biểu thức chính quy cho mẫu này, bạn có thể sử dụng đoạn mã sau

Mẫu điện thoại Biểu thức chính quyMã vùng [có thể có hoặc không có][\d{3}. \[\d{3}\]]?Dấu phân cách [- hoặc. ] [có thể có hoặc không có][\s. -. \. ]?3 chữ số đầu tiên[\d{3}]Dấu phân cách[\s. -. \. ]4 chữ số cuối[\d{4}]Phần mở rộng [nếu có][\s*[ext. x. mở rộng. ]\s*[\d{2,5}]]?

Hãy kết hợp nó lại với nhau để tạo biểu thức chính quy cho số điện thoại

# email_phone_scrap.py - Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
--snip--

# Create phone number regular expression
phone_regex = re.compile[r'''[
                        [\d{3}|\[\d{3}\]]?
                        [\s|-|\.]?
                        [\d{3}]
                        [\s|-|\.]
                        [\d{4}]
                        [\s*[ext|x|ext.]\s*[\d{2,5}]]?]''', re.VERBOSE]

Ghi chú. Ở đó. VERBOSE được sử dụng để viết bình luận trong các biểu thức chính quy

Bước 3. Xây dựng biểu thức chính quy cho ID email

Tiếp theo, bạn cần tạo một biểu thức chính quy để khớp với mẫu ID email. Để tạo biểu thức chính quy cho địa chỉ email, bạn sẽ cần xem xét các phần khác nhau của địa chỉ email. Một địa chỉ email thường bao gồm bốn phần. tên người dùng, ký hiệu @, tên miền và hậu tố [chẳng hạn như. com hoặc. giáo dục]. Ví dụ. liên hệ@kushalstudy. com

Mẫu email Biểu thức chính quyTên người dùng[a-zA-Z0-9. _%+-]+@ biểu tượng@Tên miền[a-zA-Z0-9. -]+Dấu chấm và một cái gì đó [\. [a-zA-Z]{2,4}]

Hãy cùng nhau tạo regex cho id email

# email_phone_scrap.py – Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
--snip—

# Create phone regular expression
phone_regex = re.compile[r'''[
--snip--

# Create email id regular expression
email_regex = re.compile[r'''[
                        [a-zA-Z0-9._%+-]+
                        @
                        [a-zA-Z0-9.-]+
                        [\.[a-zA-Z]{2,4}]]''', re.VERBOSE]

Bước 4. Đọc URL từ tệp CSV

Tạo một tệp CSV mới với tên website_urls. csv và đặt tất cả các URL của trang web vào cột A. Lưu trữ tệp CSV này trong cùng thư mục chứa email_phone_scrap. py đã được lưu

Tiếp theo, tạo mã python để đọc URL từ tệp CSV. Thêm đoạn mã sau vào email_phone_scrap. py

# email_phone_scrap.py – Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
--snip—

# Create phone number regular expression
phone_regex = re.compile[r'''[
--snip--

# Create email id regular expression
email_regex = re.compile[r'''[
--snip--

# Open URLs from CSV file and 
with open["website_urls.csv"] as csv_file:
    csv_reader = csv.reader[csv_file, delimiter=',']    
    
    for row in csv_reader:
        page_url = row[0]        
        print["Opening URL:", page_url]        
        page_data = requests.get[page_url]
        page_html = str[page_data.content]

Bước 5. Tìm tất cả các số điện thoại và email

Tập lệnh sẽ mở từng trang web được cung cấp trong tệp CSV. Để tìm tất cả số điện thoại và email, hãy sử dụng mã biểu thức chính quy được tạo ở trên trong tập lệnh của chúng tôi

# email_phone_scrap.py – Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
--snip--

# Create phone number regular expression
phone_regex = re.compile[r'''[
--snip--

# Create email id regular expression
email_regex = re.compile[r'''[
--snip--

# Open URLs from CSV file and 
with open["website_urls.csv"] as csv_file:
--snip--
        matches = []
        for groups in phone_regex.findall[page_html]:
            phone_numbers = '-'.join[[groups[1], groups[3], groups[5]]]
            if groups[8] != '':
                phone_numbers += ' x' + groups[8]            
            matches.append[phone_numbers]    
        
        for groups in email_regex.findall[page_html]:
            matches.append[groups[0]]
        
        print['\n'.join[matches]]

Mã nguồn hoàn chỉnh sẽ trông như thế này

# email_phone_scrap.py - Scrap email and phone number from given websites.

import csv  # for reading/writing in CSV file
import re   # for regular expressions
import requests  # for opening web page

# Create phone number regular expression
phone_regex = re.compile[r'''[
                        [\d{3}|\[\d{3}\]]?
                        [\s|-|\.]?
                        [\d{3}]
                        [\s|-|\.]
                        [\d{4}]
                        [\s*[ext|x|ext.]\s*[\d{2,5}]]?]''', re.VERBOSE]

# Create email id regular expression
email_regex = re.compile[r'''[
                        [a-zA-Z0-9._%+-]+
                        @
                        [a-zA-Z0-9.-]+
                        [\.[a-zA-Z]{2,4}]]''', re.VERBOSE]

# Open URLs from CSV file and 
with open["website_urls.csv"] as csv_file:
    csv_reader = csv.reader[csv_file, delimiter=',']    
    
    for row in csv_reader:
        page_url = row[0]        
        print["Opening URL:", page_url]
        page_data = requests.get[page_url]

        # Convert byte data to a string
        page_html = str[page_data.content]        
        
        matches = []
        for groups in phone_regex.findall[page_html]:
            phone_numbers = '-'.join[[groups[1], groups[3], groups[5]]]
            if groups[8] != '':
                phone_numbers += ' x' + groups[8]            
            matches.append[phone_numbers]            

        for groups in email_regex.findall[page_html]:
            matches.append[groups[0]]
        
        print['\n'.join[matches]]

Bước 6. Chạy chương trình

Để làm cho mọi thứ đơn giản hơn, chúng tôi sẽ chỉ bao gồm một URL trong tệp CSV cho ví dụ này. Khi bạn chạy chương trình, đầu ra sẽ trông giống như sau

Opening URL: //nostarch.com/contactus/
-010-4093
800-420-7240
415-863-9900
415-863-9950
support@nostarch.com
academic@nostarch.com
sales@nostarch.com
conferences@nostarch.com
errata@nostarch.com
support@nostarch.com
academic@nostarch.com
sales@nostarch.com
conferences@nostarch.com
errata@nostarch.com
info@nostarch.com
media@nostarch.com
editors@nostarch.com
rights@nostarch.com
support@nostarch.com
academic@nostarch.com

Đầu ra này hiển thị các số điện thoại và địa chỉ email được tìm thấy trên trang web. Nếu bạn có nhiều URL trong tệp CSV, chương trình sẽ loại bỏ tất cả chúng và hiển thị kết quả theo cùng một cách

Phần kết luận

Mã này trích xuất số điện thoại và ID email từ URL đã cho. Bạn có thể đặt bất kỳ số lượng URL nào để trích xuất thông tin này. Nếu có sự thay đổi về định dạng của số điện thoại như không có – dấu phân cách thì có thể dễ dàng đạt được. Để đơn giản, đầu ra được in trên bảng điều khiển thay vì lưu trong tệp CSV, nhưng có thể thực hiện dễ dàng để lưu dữ liệu đã loại bỏ trong CSV hoặc bất kỳ loại tệp nào khác

Mã này được thiết kế để trích xuất số điện thoại và địa chỉ email từ một URL nhất định. Bạn có thể bao gồm bao nhiêu URL tùy thích trong tệp CSV và chương trình sẽ lấy dữ liệu từ tất cả chúng. Nếu định dạng của số điện thoại hoặc địa chỉ email trên trang web thay đổi [ví dụ: nếu dấu gạch nối bị xóa khỏi số điện thoại], tập lệnh có thể dễ dàng khớp với định dạng mới

Chủ Đề