Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python查看给定搜索短语和URL的Google搜索结果_Python_Selenium_Search_Browser - Fatal编程技术网

使用Python查看给定搜索短语和URL的Google搜索结果

使用Python查看给定搜索短语和URL的Google搜索结果,python,selenium,search,browser,Python,Selenium,Search,Browser,Windows 10 Home 64位 Python 2.7(也在3.3中试用) Pycharm社区2006.3.1 对Python来说非常陌生,所以请容忍我 我想写一个脚本,它将转到Google,输入搜索短语,单击搜索按钮,查看URL(或任何字符串)的搜索结果,如果该页面上没有结果,请单击下一步按钮并在后续页面上重复,直到找到URL,停止并打印在哪个页面上找到结果 老实说,我不在乎它是否只是在后台运行并给出结果。起初,我试图让它随意打开浏览器,通过Xpath找到浏览器对象(搜索字段和搜索按钮)

Windows 10 Home 64位 Python 2.7(也在3.3中试用) Pycharm社区2006.3.1

对Python来说非常陌生,所以请容忍我

我想写一个脚本,它将转到Google,输入搜索短语,单击搜索按钮,查看URL(或任何字符串)的搜索结果,如果该页面上没有结果,请单击下一步按钮并在后续页面上重复,直到找到URL,停止并打印在哪个页面上找到结果

老实说,我不在乎它是否只是在后台运行并给出结果。起初,我试图让它随意打开浏览器,通过Xpath找到浏览器对象(搜索字段和搜索按钮),然后执行它

您可以看到我安装并尝试的模块。我在StackOverflow上找到的几乎所有代码示例都试了2天,所以列出我试过的所有代码都会很冗长

如果有人告诉我的模块,将最好的工作和任何其他方向将非常感谢

我为此尝试过的具体模块有Selenim、剪贴板、MechanicalSoup、BeautifulSoup、webbrowser、urllib、unittest和Popen

提前谢谢你! 尚茨


对于这个脚本,Selenium实际上是一个简单/好的模块;在这种情况下,你不需要其他任何东西。实现目标的最简单方法可能是:

from selenium import webdriver
import time
driver = webdriver.Firefox()
url = 'https://www.google.nl/'
linkList = []
driver.get(url)


string ='search phrase'
text = driver.find_element_by_xpath('//*[@id="lst-ib"]')
text.send_keys(string)
time.sleep(2)
linkBox = driver.find_element_by_xpath('//*[@id="nav"]/tbody/tr')
links = linkBox.find_elements_by_css_selector('a')

for link in links:
    linkList.append(link.get_attribute('href'))

print linkList
此代码将打开浏览器,输入搜索短语,然后获取不同页码的链接。从这里开始,您只需编写一个循环,进入浏览器中的每个链接,并查看搜索短语是否存在


我希望这有帮助;如果您还有其他问题,请告诉我。

使用
请求
BeautifulSoup
,添加
标题={“用户代理”:“Mozilla/5.0(X11;Ubuntu;Linux x86;U 64;rv:46.0)Gecko/20100101 Firefox/46.0”,“接受”:“text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”,“接受语言”:“en-US,en;q=0.5”}
在您的请求中,并在所有请求之间休眠几秒钟以避免被阻止。你不必点击按钮或其他任何东西,URL定义了搜索查询和页面,例如,感谢你的回复,伙计们,很抱歉回复太晚,被叫到外地。我又开始尝试了,再次谢谢你!
from selenium import webdriver
import time
driver = webdriver.Firefox()
url = 'https://www.google.nl/'
linkList = []
driver.get(url)


string ='search phrase'
text = driver.find_element_by_xpath('//*[@id="lst-ib"]')
text.send_keys(string)
time.sleep(2)
linkBox = driver.find_element_by_xpath('//*[@id="nav"]/tbody/tr')
links = linkBox.find_elements_by_css_selector('a')

for link in links:
    linkList.append(link.get_attribute('href'))

print linkList