Python是一種非常強大的編程語言,可以用來編寫各種各樣的應用程序和腳本。其中一項常見的應用就是用Python爬取網頁數據,這一技術被廣泛應用于網站開發、數據分析和機器學習等領域。
通常情況下,我們爬取網頁都是針對一個特定的網站或頁面進行的。但是有時候我們需要爬取整個網站的數據,這時候就需要編寫一些特殊的程序了。
import requests from bs4 import BeautifulSoup import re def get_all_links(url): links = [] headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') for link in soup.find_all('a', href=re.compile('^/')): if 'href' in link.attrs: links.append(link.attrs['href']) return links def crawl_site(start_url): queue = [start_url] crawled = set() while queue: url = queue.pop(0) if url in crawled: continue links = get_all_links(url) for link in links: if link.startswith('/'): link = start_url + link if link not in queue and link not in crawled: queue.append(link) crawled.add(url) print(url) if __name__ == '__main__': start_url = input('請輸入你要爬取的網站根URL:') crawl_site(start_url)
上述Python程序是一個簡單的爬蟲程序,它可以爬取指定網站下的所有網頁。首先,我們需要定義一個函數get_all_links()
,該函數輸入一個網頁URL,輸出該網頁中所有以斜杠開頭的相對URL地址。然后,我們使用一個隊列和一個集合來實現爬取網站所有頁面的操作。
當我們運行這個程序時,程序會首先詢問我們要爬取的網站根URL,然后開始爬取該網站下的所有頁面,將其網頁地址打印到控制臺。
需要注意的是,這個程序并沒有做任何的網頁解析和數據抓取,它只是簡單地將所有網頁地址輸出到控制臺。如果需要進一步處理網頁數據,我們需要針對具體的網站進行相應的解析和抓取操作。
上一篇python 矩陣中復數
下一篇python 爬去圖譜