因此可以說我有以下基本網址http://example.com/Stuff/preview/v/{id}/fl/1/t/
。網頁上有許多不同的{id}在被解析。我想在HTML頁面中找到與此模板匹配的所有鏈接。查找與HTML頁面中特定網址模板匹配的所有鏈接
我可以使用xpath來匹配模板的一部分//a[contains(@href,preview/v]
或者只是使用正則表達式,但我想知道是否有人知道使用xpath和正則表達式匹配整個模板的更優雅的方式,所以它的快速和匹配絕對正確。
謝謝。
編輯。我在示例頁面上對它進行了計時。通過我的互聯網連接和100次試驗,迭代平均需要0.467秒,BeautifulSoup需要0.669秒。
另外,如果你有Scrapy,它可以使用Selectors。
data=get(url).text
sel = Selector(text=data, type="html")
a=sel.xpath('//a[re:test(@href,"/Stuff/preview/v/\d+/fl/1/t/")]//@href').extract()
平均時間上,這也是0.467
這有效,但我更傾向於使用xpath,因爲BeautifulSoup速度相當慢,而且我正在做這個匹配很多次。迭代可能會更快,但還沒有測試過。 – Artii
@Artii請參閱更新。儘管如此,我仍然在研究答案。 – alecxe
@Artii完成編輯,看看你還有什麼問題。謝謝。 – alecxe