Th2 102019
 

Spidering:

Loạt bài hướng dẫn này sẽ giới thiệu về một vài modules mới (optparse,spider) để thực hiện một vài nhiệm vụ của spidering trên ứng dụng web. Spidering là một tiến trình dựa vào link ở phần nội dung của ứng dụng web để xây dựng các site map. spidering tận dụng tốt python nhằm tạo ra các script một cách nhanh chóng
Bạn có thể tạo ra các script crawler bằng việc phân tích các thẻ href trong phản hồi, sau đó tạo yêu cầu bổ xung.

Bạn cũng có thể tận dụng các module Python được gọi là “Spider” để thực hiện điều đó trọng một vài dòng code như sau:

Spider

Có một vài các lựa chọn mà bạn có thể cấu hình nó để biết spider nó hoạt động như thế nào “myspider(b=URL.strip(), w=200, d=5, t=5)”. Hàm này sẽ trả về hai danh sách của URLs con và đường dẫn. Bạn có thể thay đổi cách hoạt động của spider bằng cách thay đổi các tham số truyền cho hàm myspider:
b- đường dẫn của web ( mặc định là None)
w- lượng tài nguyên để thu thập ( mặc định là 200)
d- độ sâu để quét ( mặc định là 5)
t- số luồng ( mặc định là None)

Bài viết này chỉ là một cái nhìn sơ qua về cách sử dụng Python tương tác với các thành phần của web. Có một vài trường hợp nâng cao hơn cho sự tương tác tài nguyên web. Trong thời gian tới Blog sẽ tập trung vào một số trường hợp cao cấp hơn bởi các cuộc tấn công vào máy chủ web.
Đoạn mã tận dụng các module Python spider:

#!/usr/bin/python
from spider import webspider as myspider
import sys, optparse
 
def crawler(URLs):
        for line in open(URLs, 'r'):
                URL = line.strip()
                links = myspider(b=URL.strip(), w=200, d=5, t=5)
                link_count = len(links[0])
                out = URL+": has a link count of "+str(link_count)
                print "[+] Web Crawl Results for: "+URL
                print out
                for item in links[1]:
                        print item
 
def main():
# This optparse module allows you to build command line switches in your scripts
# This will set the usage to '-r' and have it stored to a variable URLs
# Then we will open the file given at the command line with -r and attempt to spider
        parser = optparse.OptionParser(sys.argv[0]+' '+
        '-r <file_with URLs>')
        parser.add_option('-r', dest='URLs', type='string', 
                help='specify target file with URLs')
        (options, args) = parser.parse_args()
        URLs=options.URLs
 
        if (URLs == None):
                print parser.usage
                sys.exit(0)
        else:
                crawler(URLs)
 
if __name__ == "__main__":
      main()