Python と Beautiful Soup を使用して、シビック コモンズ - ソーシャル メディアリンクから利用可能なソフトウェアの URL を取得しています。すべてのソーシャル メディア ソフトウェアのリンクが必要です (20 ページにまたがっています)。最初のページに記載されているソフトウェアの URL を取得できます。
以下は、これらの値を取得するために作成した Python コードです。
from bs4 import BeautifulSoup
import re
import urllib2
base_url = "http://civiccommons.org"
url = "http://civiccommons.org/software-functions/social-media"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
list_of_links = []
for link_tag in soup.findAll('a', href=re.compile('^/apps/.*')):
string_temp_link = base_url+link_tag.get('href')
list_of_links.append(string_temp_link)
list_of_links = list(set(list_of_links))
for link_item in list_of_links:
print link_item
print ("\n")
#Newly added code to get all Next Page links from a url
next_page_links = []
for link_tag in soup.findAll('a', href=re.compile('^/.*page=')):
string_temp_link = base_url+link_tag.get('href')
next_page_links.append(string_temp_link)
for next_page in next_page_links:
print next_page
/apps/ 正規表現を使用して、ソフトウェアのリストを取得しました。
しかし、次のページをクロールするためのより良いアプローチがあるかどうか知りたかった. 正規表現 "*page=" を使用して、次のページのリンクと一致させることができます。しかし、これはページのリストを繰り返します。
どうすればこれをより良い方法で行うことができますか?