Thu thập url quảng cáo

Một phần của tài liệu đồ án phát hiện và ngăn chặn quảng cáo độc hại dựa vào url (Trang 36 - 39)

Đầu tiên, chúng ta cài đặt PhantomJS, đây là một Javascript Framework, được dùng để phân tích, thu thập dữ liệu trên webpages. Sau đó, chúng ta sử dụng PhantomJS để phân tích webpage và thu thập tất cả các Iframe trên trang. Trong bước này, chúng tôi để độ

29

sâu (số lần tối đa người dùng kích vào các link khác nhau trên website) là 2, trong thực tế độ sâu có thể lớn hơn rất nhiều, do người dùng có thể thao tác trên webpage rất nhiều lần và trên các trang khác nhau trên webpage.

Nhưng đối với phạm vi khóa luận này, chúng tôi chỉ tập trung vào một vài “Seed url”(URL ban đầu đưa vào) nhất định gồm rất nhiều URL được công khai trên Internet, để thu được tập các “URL Iframe” nhất định, để thu được số url quảng cáo nhất định.

Ở đây, chúng ta chỉ thu thập IFRAME như một ví dụ điển hình của các URL quảng cáo trên webpage, trong khi trên webpage có thể chứa rất nhiều loại quảng cáo, cũng như các link khác nhau trên webpage.

Sau khi thu được hầu hết tất cả các URL của IFRAME trên webpage, chúng ta sử dụng một API của Adblock Plus để xem trong những URL của Iframe mà chúng ta thu thập, thì URL nào là URL quảng cáo. Nếu kết quả trả về mà URL nào bị ngăn lại (block), nghĩa là bị API của Adblock Plus giữ lại, tức là URL đó là URL quảng cáo, còn ngược lại không phải URL quảng cáo. Cứ như vậy chúng ta thu được tập D gồm khoảng 200 URL quảng cáo.

Dưới đây là sơ đồ mô tả quá trình thu thập được tập các URL quảng cáo D.

Seed URL Phantomjs- based Crawler Page Content ADBLOCK PLUS PARSE TRUE ? ADS DATASET (D) Depth< MAXDEPTH ? NO YES YES IFRAME EXTRACTION NO BEGIN END

Hình 3. 1Quá trình thu thập URL quảng cáo

Để thu thập được “IFRAME” dựa vào PhantomJS ta sử dụng mã giả của chương trình :

30

Thu thập URL của “Iframe” trên trang

Đầu vào : Trang web cần thu thập (SeedURL) Đầu ra : Tập các URL của “Iframe” trên trang Bắt đầu

Nếu URL = 0 và d >= MAX_DEPTH: Ghi ra file

Thoát Ngược lại

Lấy URL trong tập ra và độ xâu tương ứng.

Với mỗi URL thu được thực hiện: Tập các URL của “a”,

Tập các độ xâu tương ứng với URL, Tập các URL của “Iframe”.

Kết thúc

Sau đó, sử dụng tập “IFRAME” gồm tất cả URL trên trang bao gồm cả những URL là quảng cáo và URL không là quảng cáo. Để biết URL nào URL quảng cáo, đưa qua AdblockPlus API (đây là một API mã nguồn mở dùng để phát hiện quảng cáo của Adblock Plus), ta thu được tập URL quảng cáo D.

31

# open file and read file have iframe ra = open(OUTPUT_URL,'r')

rads = ra.readline() reads = rads.split(",")

from adblockparser import AdblockRules abp = AdblockRules(rules)

# write data into ads file wa = open(ADS_URL,'w') list_ads = []

count_TRUE = 0 total = 0

for iad in reads: total += 1

result = abp.should_block(iad) if result and iad not in list_ads: count_TRUE += 1

list_ads.append(iad) ads = wa.write(iad+'\n')

Một phần của tài liệu đồ án phát hiện và ngăn chặn quảng cáo độc hại dựa vào url (Trang 36 - 39)