私は別のURLからすべてのリンクを解析する必要があります(しかし、私は解析すべきドメインを持つ共通のドメインを持っているリンクのみを取得する必要があります)。Python:いくつかのURLからすべてのリンクを解析します
私は
pages = set()
def get_links(url, page_url):
global pages
html = urlopen(url + page_url)
page = BeautifulSoup(html, "html.parser")
for link in page.findAll("a", href=re.compile("^(/)")):
if 'href' in link.attrs:
if link.attrs['href'] not in pages:
new_page = link.attrs['href']
pages.add(new_page)
try:
get_links(url, new_page)
except:
continue
return pages
を使用する。しかし、このコードは、/
で始まるすべてのリンクを返します。どのように私はこれをドメインに属するリンク、私が解析するリンクに制限できますか?
リンク上のドメインに正規表現を使用しますか?これはかなり簡単なリストフィルタリングです... –
@ JaredSmithのリンクは共通のパターンを持っていません –
あなたはただ彼らがすべて同じドメインに属していると言いました。つまり、それらはすべて共通の部分文字列を共有しており、これは正規表現と一致する可能性があります。なぜそれをセットに追加する前に、あなたが物の存在をチェックしているのかも不明です。 –