私はPythonと、この質問で話そうとしていることすべてにかなり慣れていませんが、いつか考えていたプロジェクトを始めたいと思っています。基本的に、Web をクロールして、Web ページ上でリアルタイムにクロールされたときに URL を表示したいと考えています。URL をリストに保管する単純なクローラーをコーディングしました。このリストをデータベースに取得し、x 秒ごとにデータベースを更新して、データベースにアクセスし、Web ページ上のリンクのリストを定期的に出力できるようにする方法を考えていました。
リアルタイムの Web 開発についてはあまり詳しくありませんが、それはまた別の機会にします。しかし今は、リストをデータベースに取り込む方法の方が心配です。私は現在、とても使いやすいweb2pyフレームワークを使用していますが、どこを見るべきか、どのフレームワークをチェックすべきかについて何か推奨事項がある場合は...回答にもコメントしてください、ありがとう。
一言で言えば、私が初心者であることは、Python、データベース、リアルタイム Web 開発です。
とにかく役立つ場合は、これが私のクローラーのコードです:)ありがとう
from urllib2 import urlopen
def crawler(url,x):
crawled=[]
tocrawl=[]
def crawl(url,x):
x=x+1
try:
page = urlopen(url).read()
findlink = page.find('<a href=')
if findlink == -1:
return None, 0
while findlink!=-1:
start = page.find(('"'), findlink)
end = page.find(('"'), start+1)
link = page[start+1:end]
if link:
if link!=url:
if link[0]=='/':
link=url+link
link=replace(link)
if (link not in tocrawl) and (link!="") and (link not in crawled):
tocrawl.append(link)
findlink = page.find('<a href=', end)
crawled.append(url)
while tocrawl:
crawl(tocrawl[x],x)
except:
#keep crawling
crawl(tocrawl[x],x)
crawl(url,x)
def replace(link):
tsp=link.find('//')
if tsp==-1:
return link
link=link[0:tsp]+'/'+link[tsp+2:]
return link