2

現在、クエリの Google 結果の最初のページのみを取得していますが、最初の 5 ページを取得したいと考えています。

次のような文字列を取得します。https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=0

変数urlsは最初のページの 10 個の結果すべてを取得しますが、この最初のページで 10 個の URL をチェックする条件を追加し始めました。次の URL にも 10 件の結果があります)follow_link()および以下の URLのようなものを使用します。

https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=10
https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=20
https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=30
https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=40
https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=50

どうすればこれを行うことができますか?誰か助けてくれませんか?

4

1 に答える 1

2

BeautifulSoup を使用して、次のページへのリンクを含む要素を見つけることができます。

from mechanize import Browser
from bs4 import BeautifulSoup

br = Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.2;\
                    WOW64) AppleWebKit/537.11 (KHTML, like Gecko)\
                    Chrome/23.0.1271.97 Safari/537.11')]

url = "https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=0"

r = br.open(url)

soup = BeautifulSoup(r)

nextpage = soup.find("a", {"id": "pnnext"})
print nextpage['href']

出力:

/search?q=site:somedomain.com&hl=en&ei=NJ4HUo2yM-TK4ATJlYGICQ&start=10&sa=N

これで、次のページへのリンクができました。要素が見つからなかった場合、それは最後のページです

于 2013-08-11T14:22:21.200 に答える