我将 xgoogle python 库用于我的一个项目。直到最近它工作正常。我没有得到以前得到的结果集。如果有人使用过 Peter Krummins 编写的这个库,遇到类似的情况,你能建议一个解决方法吗?
3 回答
该库使用网络抓取来获得其结果的提示的存在。BeautifulSoup.py
一个常见的问题是,当被抓取的页面的设计/布局发生变化时,它很容易中断。您看到的问题似乎与 Google 最近推出的新搜索结果布局不谋而合。
另一个问题是,它经常违反被抓取网站的服务条款。根据Google 服务条款第 5.3 点,它实际上是:
您明确同意不通过任何自动化方式(包括使用脚本或网络爬虫)访问(或试图访问)任何服务 [...]
一个更好的主意是使用自定义搜索 API。
Peter Krumin 的产品 xgoogle 看起来对我和其他许多人都非常有用。 https://github.com/pkrumins/xgoogle
对我来说,当前版本是 1.3 不起作用。我尝试从 GitHub 进行新安装,运行示例,但没有返回任何内容。
将调试器添加到源代码并跟踪在查询中捕获的数据直至其消失,问题发生在解析器命令中名为 search.py 子例程“_extract_results”的例程中
results = soup.findAll('li', {'class': 'g'})
汤对象中有材料,但“findAll”没有返回任何东西。
看起来它正在搜索列表,如果没有,它什么也不返回。我不确定你会尝试匹配什么 html 来获得结果。如果有人知道如何制作,我很感兴趣。
再用谷歌搜索一下,似乎 xgoogle 不再受支持或工作。部分麻烦在于谷歌经常改变其结果页面的布局,因此任何假设一些标准布局的抓取软件都注定会失败。
但是,还有其他本地安装的搜索引擎,因此提供的结果布局不太可能随着升级而改变,如果您不升级,则根本不会改变。
我目前正在调查 Yacy。易于安装,并且可以根据需要指向特定站点。