用python寫一個爬取特定網站所有鏈接,并生成站點地圖的程序,生成的結果包含html和xml兩種格式
用python寫一個爬取特定網站所有鏈接,并生成站點地圖的程序,生成的結果包含html和xml兩種格式
整理自網絡ChatGPT產生之內容,文本內容不具備參考意義,程序內容及代碼片段有且僅有借鑒意義。
使用python爬蟲scrapy來實現 1、安裝scrapy框架: pip install scrapy 2、創建一個項目: scrapy startproject project_name 3、進入項目目錄,創建一個spider: cd project_name && scrapy genspider spider_name website 4、在spider文件里定義start_urls,allowed_domains,并實現網頁下載和url處理器: import scrapy from scrapy.selector import Selector from scrapy.http import Request class Spider_name(scrapy.Spider): name = "Spider_name" allowed_domains = [] # 設置允許的網址 start_urls = [ 'https://www.example.com/', ] def parse(self, response): """ 網頁下載器 """ # 下載網頁 html = response.body # 對下載的網頁進行解析 selector = Selector(text=html) # 獲取當前頁所有鏈接 list_urls = selector.xpath("http://a/@href").extract() for url in list_urls: # 避免重復爬取 if url not in self.allowed_domains: yield Request(url, callback=self.parse) def save_result(self, list_urls): """ 保存抓取到的結果 """ # 生成html格式 with open('urls.html', 'w+') as fp: fp.write("") for url in list_urls: fp.write("" + url + "") fp.write("") # 生成xml格式 with open('urls.xml', 'w+') as fp: fp.write("
") for url in list_urls: fp.write(" ")") fp.write(" "+url+"
Public @ 2023-02-18 14:07:52 整理自網絡ChatGPT產生之內容,文本內容不具備參考意義,程序內容有且僅有借鑒意義。