import requests
def search(query, pages=4, rsz=8):
url = 'https://ajax.googleapis.com/ajax/services/search/web'
params = {
'v': 1.0, # Version
'q': query, # Query string
'rsz': rsz, # Result set size - max 8
}
for s in range(0, pages*rsz+1, rsz):
params['start'] = s
r = requests.get(url, params=params)
for result in r.json()['responseData']['results']:
yield result
起初 2,3 次尝试,它正在检索所有必需的页面,但在 2,3 次尝试后,它没有得到任何结果。它返回"无"或 []。谷歌在几次尝试后会阻止我的 IP 吗?有什么解决办法吗?
我不确定这是否有效,但避免被不鼓励抓取的网站阻止的唯一方法是在检索网页时使用代理。请检查如何在代码中使用代理。
好吧,这个问题是使用请求和BeautifulSoup解决的。
import requests, import BeautifulSoup
url = 'http://www.google.com/search'
payload = { 'q' : strToSearch, 'start' : str(start), 'num' : str(num) }
r = requests.get( url,params = payload, auth=('user', 'pass'))
subSoup = BeautifulSoup( subR.text, 'html.parser' )
text = soup.get_text(separator=' ')