python - 关注 Google 结果的前 5 页 Python Mechanize

标签 python conditional-statements mechanize mechanize-python

我目前仅抓取 Google 结果的第一页进行查询,但我想抓取前 5 页。

获取如下字符串:https://encrypted.google.com/search?hl=en&q=site%3Asomedomain.com&start=0

变量urls获取第一页的所有10个结果,但我开始添加条件来检查第一页上的10个网址,如果这是真的并且有10个网址,我想要它继续前往下一个网址,例如(假设下一个网址也有 10 个结果)使用 follow_link() 和下面的网址:

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

我该如何去做呢?有人可以帮我吗?

最佳答案

您可以使用 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

现在您已经有了下一页的链接。如果未找到元素,则为最后一页

关于python - 关注 Google 结果的前 5 页 Python Mechanize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167897/

相关文章:

python - 在我们连接之前,浏览器似乎已经退出。输出为 : mkdir: cannot create directory

css - 当另一个元素以 Angular 获取类时,如何向元素添加类?

swift - 条件语句的预期声明

c++ - pygtkscintilla 自动缩进

javascript - 如何 "Lock down"V8?

python - while 循环即使条件为 false,仍会再循环一次

ruby - 在 Mechanize 中为选择列表设置值

java - Ant 条件属性扩展未按预期工作

python - 在 python 的 mechanize 模块中写入文本输入时出现问题

python - 我如何知道我何时完成对域的抓取?