使用Python的Google Scrape中错误的结果数

马可·纳沃尼(Marco Navone)

我正在尝试学习网页抓取功能,但遇到了一个怪异的问题...我的任务是在特定日期范围内搜索Google上某个主题的新闻,然后计算结果数。

我的简单代码是

import requests,  bs4

payload = {'as_epq': 'James Clark', 'tbs':'cdr:1,cd_min:1/01/2015,cd_max:1/01/2015','tbm':'nws'}    
r = requests.get("https://www.google.com/search", params=payload)

soup = bs4.BeautifulSoup(r.text)
elems = soup.select('#resultStats')
print(elems[0].getText())

我得到的结果是

About 8,600 results

因此,显然所有的工作都可以...除了结果是错误的事实之外。如果我在Firefox中打开URL(可以使用r.url获取完整的URL)

https://www.google.com/search?tbm=nws&as_epq=James+Clark&tbs=cdr%3A1%2Ccd_min%3A1%2F01%2F2015%2Ccd_max%3A1%2F01%2F2015

我看到结果实际上只有2个,如果手动下载HTML文件,打开页面源并搜索id =“ resultStats”,我发现结果的数量确实是2个!

有人可以帮助我理解为什么在保存的HTML文件和汤中搜索相同的id标记会导致两个不同的数值结果吗?

**************更新似乎问题出在自定义日期范围,requests.get无法正确处理该日期范围。如果我对使用相同的URL,我会得到正确的答案

from selenium import webdriver
driver = webdriver.Firefox()
driver.get(url)
content = driver.page_source
soup = bs4.BeautifulSoup(content)
elems = soup.select('#resultStats')
print(elems[0].getText())

答案是

2 results (0.09 seconds) 

问题在于这种方法似乎比较麻烦,因为我需要在Firefox中打开页面...

维卡斯·欧哈(Vikas Ojha)

造成此问题的原因有几方面。首先,它希望日期的日期和月份部分为两位数,并且还期望某些流行浏览器的用户代理字符串。下面的代码应该工作:

import requests,  bs4

headers = {
    "User-Agent":
        "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
}
payload = {'as_epq': 'James Clark', 'tbs':'cdr:1,cd_min:01/01/2015,cd_max:01/01/2015', 'tbm':'nws'}
r = requests.get("https://www.google.com/search", params=payload, headers=headers)

soup = bs4.BeautifulSoup(r.content, 'html5lib')
print soup.find(id='resultStats').text

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python 中的错误除法结果

来自分类Dev

使用Python在Google中搜索

来自分类Dev

在PHP中使用xpath错误的结果数

来自分类Dev

在PHP中使用xpath错误的结果数

来自分类Dev

使用 Python 在 Google Kubernetes Engine 中的 OpenCensus 错误

来自分类Dev

python中的BankAccount,得到错误的结果

来自分类Dev

Python 中的 LinearRegression 给出了错误的结果?

来自分类Dev

使用python隐藏Google表格中的行

来自分类Dev

使用 Python 在 Google Maps 中测量区域

来自分类Dev

Python + Selenium Scrape错误:ElementNotVisibleException

来自分类Dev

如何使用Selenium(Python)进行Google搜索,然后在新标签页中打开首页的结果?

来自分类Dev

如何从Python中的GLM结果中获取标准错误?

来自分类Dev

Google API Distancematrix在VBA中返回错误的json结果

来自分类Dev

403错误缺少合并范围使用Python写入Google表格

来自分类Dev

在Python中使用Google翻译库时出现Json错误

来自分类Dev

使用 Py 3 的 Google Python 指南中的语法错误

来自分类Dev

Python-列表理解中的Lambda给出了错误的结果

来自分类Dev

来自scipy.in的odeint在Python中给出错误的结果?

来自分类Dev

在Python中类型转换为'int'会产生错误的结果

来自分类Dev

在google bigquery中,如何使用google python客户端使用javascript UDF

来自分类Dev

使用check_apt时在Nagios中得到错误的结果

来自分类Dev

使用php在简单算术中获得的错误结果

来自分类Dev

使用带有sqlite的java中的错误结果

来自分类Dev

在python中,当我使用或运算符时不显示错误也不显示预期结果

来自分类Dev

使用Python中的BeautifulSoup从Google搜索中检索链接

来自分类Dev

在Google App Engine中,如何使用python通过boolean查询?

来自分类Dev

使用python在Google Drive / Dropbox中访问文件

来自分类Dev

如何使用Python 3中的脚本连接Google Datastore

来自分类Dev

使用API在Python中执行Google搜索,并返回KeyError

Related 相关文章

  1. 1

    Python 中的错误除法结果

  2. 2

    使用Python在Google中搜索

  3. 3

    在PHP中使用xpath错误的结果数

  4. 4

    在PHP中使用xpath错误的结果数

  5. 5

    使用 Python 在 Google Kubernetes Engine 中的 OpenCensus 错误

  6. 6

    python中的BankAccount,得到错误的结果

  7. 7

    Python 中的 LinearRegression 给出了错误的结果?

  8. 8

    使用python隐藏Google表格中的行

  9. 9

    使用 Python 在 Google Maps 中测量区域

  10. 10

    Python + Selenium Scrape错误:ElementNotVisibleException

  11. 11

    如何使用Selenium(Python)进行Google搜索,然后在新标签页中打开首页的结果?

  12. 12

    如何从Python中的GLM结果中获取标准错误?

  13. 13

    Google API Distancematrix在VBA中返回错误的json结果

  14. 14

    403错误缺少合并范围使用Python写入Google表格

  15. 15

    在Python中使用Google翻译库时出现Json错误

  16. 16

    使用 Py 3 的 Google Python 指南中的语法错误

  17. 17

    Python-列表理解中的Lambda给出了错误的结果

  18. 18

    来自scipy.in的odeint在Python中给出错误的结果?

  19. 19

    在Python中类型转换为'int'会产生错误的结果

  20. 20

    在google bigquery中,如何使用google python客户端使用javascript UDF

  21. 21

    使用check_apt时在Nagios中得到错误的结果

  22. 22

    使用php在简单算术中获得的错误结果

  23. 23

    使用带有sqlite的java中的错误结果

  24. 24

    在python中,当我使用或运算符时不显示错误也不显示预期结果

  25. 25

    使用Python中的BeautifulSoup从Google搜索中检索链接

  26. 26

    在Google App Engine中,如何使用python通过boolean查询?

  27. 27

    使用python在Google Drive / Dropbox中访问文件

  28. 28

    如何使用Python 3中的脚本连接Google Datastore

  29. 29

    使用API在Python中执行Google搜索,并返回KeyError

热门标签

归档