0
import urllib
import re
import os
search = (raw_input('[!]Search: '))
site = "http://www.exploit-db.com/list.php?description="+search+"&author=&platform=&type=&port=&osvdb=&cve="   
print site
source = urllib.urlopen(site).read()
founds = re.findall("href='/exploits/\d+",source)
print "\n[+]Search",len(founds),"Results\n"
if len(founds) >=1:
        for found in founds:
                found = found.replace("href='","")
                print "http://www.exploit-db.com"+found
else:
        print "\nCouldnt find anything with your search\n"

エクスプロイト db.com サイトを検索すると、25 件の結果しか表示されません。別のページに移動したり、25 件の結果を渡したりするにはどうすればよいですか。

4

2 に答える 2

0

サイトにアクセスして、手動でページをめくるように URL を確認するだけで簡単に確認できます。結果の 2 ページ目を確認する?には、URLの直後に を入力するか、3 ページ目を確認します。page=1&page=2&

これはどのようにPythonの質問ですか? これは (非常に初歩的な!) 「スクリーン スクレイピング」の質問です。

于 2010-02-19T16:27:09.030 に答える
0

どうやら、exploit-db.com サイトではページ サイズの拡張が許可されていないようです。したがって、後続のページを取得するには、urllib.urlopen() を繰り返して、結果リストを「手動で」ページングする必要があります。URL は、最初に使用したものと同じで、&page=nパラメーターが追加されています。この n 値は 0 から始まるように見えることに注意してください (つまり、&page=1 で2ページ目が表示されます) 。

于 2010-02-19T16:27:19.887 に答える