我希望能够设置网页的数量,使刮刀在谷歌爬行。
我不知道从哪里开始,我并不真的使用刮刀一次打开多个页面,而是一次请求一个页面。
import requests
import re
keywords = ["site:facebook.com", "@gmail.com", "sports"]
url = 'https://google.com/search?q={}'.format('+'.join(keywords))
print(url)
response = requests.get(url)
regex = r"[\w._-]+@[\w._-]+\.[\w._-]+"
emails = re.findall(regex, str(response.content))
emails_list = list(set(emails))
print(emails_list)
刮第一页的时候效果很好。
1条答案
按热度按时间e4eetjau1#
仅供参考,Google will block you if you scrape them。这对于很少的请求可能是好的,但是如果它看起来像一个机器人,你可能会被IP阻止。Maybe consider something like this用作代理。
在任何情况下,如何实际做到这一点:
您可以通过传递
start
GET参数对google响应进行分页。例如,如果您有这样的请求:
https://www.google.com/search?q=test
第二页为:
https://www.google.com/search?q=test&start=10
第三页为:
https://www.google.com/search?q=test&start=20
您可以使用urlencode创建URL: