In diesem Artikel wird hauptsächlich die Methode von Python zum Abrufen aller Links auf der aktuellen Seite vorgestellt. Er vergleicht und analysiert vier häufig verwendete Methoden zum Abrufen von Seitenlinks in Form von Beispielen. Außerdem wird die Methode zum Abrufen von Links innerhalb des Iframes vorgestellt Framework. Freunde, die es brauchen Sie können auf Folgendes verweisen
Dieser Artikel beschreibt vier Methoden für Python, um alle Links auf der aktuellen Seite zu erhalten. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
''' 得到当前页面所有连接 ''' import requests import re from bs4 import BeautifulSoup from lxml import etree from selenium import webdriver url = 'http://www.testweb.com' r = requests.get(url) r.encoding = 'gb2312' # 利用 re (太黄太暴力!) matchs = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" , r.text) for link in matchs: print(link) print() # 利用 BeautifulSoup4 (DOM树) soup = BeautifulSoup(r.text,'lxml') for a in soup.find_all('a'): link = a['href'] print(link) print() # 利用 lxml.etree (XPath) tree = etree.HTML(r.text) for link in tree.xpath("//@href"): print(link) print() # 利用selenium(要开浏览器!) driver = webdriver.Firefox() driver.get(url) for link in driver.find_elements_by_tag_name("a"): print(link.get_attribute("href")) driver.close()
Hinweis: Wenn die Seite einen Iframe enthält, sind alle Tags der Seite enthalten Im Iframe ist es nicht möglich, die oben genannten vier Methoden zu verwenden, um es zu erhalten! ! ! Zu diesem Zeitpunkt:
# 再打开所有iframe查找全部的a标签 for iframe in soup.find_all('iframe'): url_ifr = iframe['src'] # 取得当前iframe的src属性值 rr = requests.get(url_ifr) rr.encoding = 'gb2312' soup_ifr = BeautifulSoup(rr.text,'lxml') for a in soup_ifr.find_all('a'): link = a['href'] m = re.match(r'http:\/\/.*?(?=\/)',link) #print(link) if m: all_urls.add(m.group(0))
Das obige ist der detaillierte Inhalt vonPython verwendet vier Methoden, um eine vergleichende Analyse aller Links auf der aktuellen Seite zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!