我想使用 Beautiful Soup 和 urllib 从 python 脚本对雅虎搜索引擎进行基本查询。我为谷歌做了同样的事情,这很容易,但雅虎被证明有点困难。雅虎搜索引擎查询的最小示例脚本会有所帮助。谢谢!
问问题
3998 次
2 回答
2
首先,避免urllib
- 使用requests代替,这是一个更理智的界面。
然后,返回页面中的所有链接都具有yschttl
遵循 scheme 的类和 ID link-1
,link-2
依此类推。你可以用漂亮的汤:
import requests
from bs4 import BeautifulSoup
url = "http://search.yahoo.com/search?p=%s"
query = "python"
r = requests.get(url % query)
soup = BeautifulSoup(r.text)
soup.find_all(attrs={"class": "yschttl"})
for link in soup.find_all(attrs={"class": "yschttl"}):
print "%s (%s)" %(link.text, link.get('href'))
给我们
Python Programming Language – Official Website (http://www.python.org/) Python - Image Results (http://images.search.yahoo.com/search/images?_adv_prop=image&va=python) Python (programming language) - Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Python_(programming_language))
和更多。
于 2012-05-12T09:53:56.130 回答
1
修改 Manuel 的代码以使其工作:
url = "http://api.search.yahoo.com/search?p=%s"
query = 'Python'
r = requests.get(url % query)
soup = BeautifulSoup(r.text, features = "lxml")
soup.find_all(attrs={"class": "fz-ms lh-1_43x"})
for link in soup.find_all(attrs={"class": "fz-ms lh-1_43x"}):
print(link.text)
# print(link.text, link.get('href'))
print('---------------------------------------------------')
于 2021-05-03T23:53:48.357 回答